gpt4 book ai didi

c# - 如何在 Windows Phone 应用程序中从 StackPanel 制作位图图像

转载 作者:行者123 更新时间:2023-11-30 18:01:52 24 4
gpt4 key购买 nike

我想申请,比如this one .该应用程序可以制作带有文本的图 block 。

我发现我不能轻易地在tile中写入文本,因为StandardTileData类没有这样的函数可以在tile中写入文本。 StandardTileData类只是可以设置Title、BackgroundImage、Count等。示例如下。

StandardTileData secondaryTile = new StandardTileData
{
BackgroundImage = new Uri("/TileColors..png", UriKind.Relative),
Title = "title",
Count = null,
};
ShellTile.Create(new Uri("/MainPage.xaml?id=1", UriKind.Relative), secondaryTile);

所以,我认为我们可能需要制作包含文本的位图图像。我没有其他好主意。有谁知道如何从堆栈面板制作位图图像?

我的代码是这样的,

<StackPanel Height="173" Width="173" x:Name="TilePanel" Background="Wheat" >
<TextBlock x:Name="tileText" Text="I'd like to add the text to a tile." Style="{StaticResource PhoneTextNormalStyle}" HorizontalAlignment="Left" FontSize="20"/>
</StackPanel>

最佳答案

也许这个函数可以帮到你:

    public static void SaveToIsolatedStorage(FrameworkElement element, string file, bool scaled=true)
{
try
{
var bmp = new WriteableBitmap(element, null);
IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();

double width = Math.Round(element.ActualWidth * ((double)Application.Current.Host.Content.ScaleFactor / 100f), MidpointRounding.AwayFromZero);
double height = Math.Round(element.ActualHeight * ((double)Application.Current.Host.Content.ScaleFactor / 100f), MidpointRounding.AwayFromZero);

if (!scaled)
{
width = element.ActualWidth;
height = element.ActualHeight;
}


using (var stream = iso.CreateFile(file))
{
bmp.SaveJpeg(stream, (int)width, (int)height, 0, 100);
stream.Close();
}
}
catch
{
}
}

用法:

    SaveToIsolatedStorage(uiElement, "uiElement_as_screenshot.jpg");

Edith:看来我迟到了,但它可以帮助其他人 ;)

关于c# - 如何在 Windows Phone 应用程序中从 StackPanel 制作位图图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8625595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com