[英]adding watermark text on image in windows phone 8.1
TextBlock text = new TextBlock();
text.Text = "WATER MARK";
text.Width = 150;
text.Height = 50;
text.TextWrapping = TextWrapping.Wrap;
Grid grid = new Grid();
grid.Height = 50;
grid.Width = 150;
RowDefinition rowDefinition = new RowDefinition();
rowDefinition.Height = new GridLength(50, GridUnitType.Auto);
grid.RowDefinitions.Add(rowDefinition);
Grid.SetRow(text, 0);
grid.Children.Add(text);
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(grid);
var pixelBuffer = await renderTargetBitmap.GetPixelsAsync();
在这里我试图保存其中添加了文本块的网格,但是我得到一个例外,该值不在 RenderAsync() 的范围内 。
即使我保存添加了图像和文本块的网格,也遇到了同样的异常。
当我尝试保存XAML中定义的网格时,我没有收到任何异常。 但是如何保存以编程方式定义的网格。
该UIElement
要呈现给RenderTargetBitmap
需要在可视化树(渲染)。
以下是直接来自官方文档的一些评论:
树中但将“可见性”设置为“已折叠”的内容将不会被捕获。
未直接连接到XAML可视树的内容和主窗口的内容都不会被捕获。 这包括弹出窗口内容,该内容被视为子窗口。
对于Windows Phone Store应用程序:WebView控件的内容无法呈现到RenderTargetBitmap中。
无法捕获的内容将在捕获的图像中显示为空白,但是同一视觉树中的其他内容仍可以捕获并进行渲染(存在无法捕获的内容不会使对的全部捕获无效XAML组成)。
只要不是Visibility = Collapsed或在其他受限制的情况下,就可以捕获XAML可视树中但位于屏幕外的内容。
对于您的问题,我建议您在XAML中创建水印及其容器,但将不透明度设置为0。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.