none
如何动态生成一个磁贴背景? RRS feed

  • 问题

  • 我想做一个天气预报应用,动态生成天气磁贴的背景图片,

    我先建了一个用户控件(FlipCycleTileMediumControl ),该控件代表一个磁贴,

    然后用以下代码:

    var tileControl = new FlipCycleTileMediumControl();
    var writeableBitmap = new System.Windows.Media.Imaging.WriteableBitmap(336336);
    writeableBitmap.Render(tileControl, null);
    writeableBitmap.Invalidate();

     

    创建了一个writeableBitmap, 将它保存到独立存储的Shared/ShellContent/FlipCycleTileMedium.jpg路径下,

    奇怪的是,生成的图片背景是黑的,里面的文字也拉长了,完全不是我在blend中设计的用户控件的样子,

    用户控件代码如下:

    <UserControl x:Class="TileWeather.FlipCycleTileMediumControl"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"     mc:Ignorable="d"     FontFamily="{StaticResource PhoneFontFamilyNormal}"     FontSize="{StaticResource PhoneFontSizeNormal}"     Foreground="{StaticResource PhoneForegroundBrush}"     Height="336" Width="336">     <Grid x:Name="LayoutRoot" Background="#FF388D1F">      <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="你好" VerticalAlignment="Top" FontSize="{StaticResource PhoneFontSizeExtraExtraLarge}"/>     </Grid></UserControl>

    问题:

    1.我这样做法不对嘛?应该怎么做?

    2.问什么 writeableBitmap.Render(tileControl, null)生成的图片跟原控件差别很大?如何避免??

    2013年8月30日 5:04

答案