gpt4 book ai didi

c# - 在原始图像上放置一个(其中包含数据的网格控件)并将整个事物作为图像输出到 SIlverlight :

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

我有一张图片,我想在该图片上渲染控件(datgrid 或任何带有其内容的 ui 元素)并将整个内容输出为图片。请帮忙。

我在 so 中找到了一些类似的链接,只是看看他的回答但没有帮助.. Silverlight: Create image from silverlight controls

提前致谢。 :)

最佳答案

我使用在某处找到的以下方法从框架元素(基本上是网格、 Canvas 、按钮、文本框...)创建图像

它获取在控件边界内可以找到的任何内容,并将其作为 ImageSource 类型返回,我认为从那里开始将其保存到文件或将其输出到屏幕是一小步。

请注意:我删除了一些应该解决边距问题的代码,所以一定要考虑到这一点,或者不要为您希望转换为图像的控件设置边距。

您现在基本上想要做的是使用 GridCombiner 并将其提供给下面的方法,这样它将通过 ImageBackground 从 DataGridMyData 创建一个图像作为 ImageSource。

希望这就是您要找的东西,如果没有,请告诉我。

public ImageSource ToImageSource(FrameworkElement obj) // FOR WPF
{
// Save current canvas transform
Transform transform = obj.LayoutTransform;
obj.LayoutTransform = null;

// Get the size of canvas
Size size = new Size(obj.Width, obj.Height);

// force control to Update
obj.Measure(size);
obj.Arrange(new Rect(size));

RenderTargetBitmap bmp = new RenderTargetBitmap(
(int)obj.Width, (int)obj.Height, 96, 96, PixelFormats.Pbgra32);

bmp.Render(obj);

// return values as they were before
obj.LayoutTransform = transform;
return bmp;
}


public ImageSource ToImageSource(FrameworkElement obj) // FOR SILVERLIGHT
{
// Save current canvas transform
Transform transform = obj.RenderTransform;
obj.RenderTransform = null;

// Get the size of canvas
Size size = new Size(obj.Width, obj.Height);

// force control to Update
obj.Measure(size);
obj.Arrange(new Rect(new Point(), size));

WriteableBitmap bmp = new WriteableBitmap(obj, transform);

bmp.Render(obj, transform);

// return values as they were before
obj.RenderTransform = transform;
return bmp;
}

你的 xaml 应该是这样的:

<Grid x:Name="GridCombiner" Width="300" Height="150">
<Image x:Name="ImageBackground" Source="c:/myimg.jpg" Width="300" Height="150" />
<DataGrid x:Name="DataGridMyData" ItemsSource="{Binding}" Width="300" Height="150" />
</Grid>

关于c# - 在原始图像上放置一个(其中包含数据的网格控件)并将整个事物作为图像输出到 SIlverlight :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3067744/

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