繁体   English   中英

在Windows Phone 8.1中的图像上添加水印文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM