Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么是视觉偏移?_C#_Wpf - Fatal编程技术网

C# 什么是视觉偏移?

C# 什么是视觉偏移?,c#,wpf,C#,Wpf,我使用以下代码从visual生成jpg(如果您知道,请告诉我参考): 它对一种视觉效果很好,但对另一种视觉效果来说,它突然在黑色背景下发生了变化。这是一张草图(我无法显示真实图像): 在target.Render(element)设置断点后,我意外发现有一个名为: 其值与视觉偏移量相同 这是什么?如何更改其值(受保护的)?如何从visual生成jpg而不出现该问题?这可能与动画或数据模板有关吗?目前,我使用钝反射进行修复: element.GetType().GetProperty("Vis

我使用以下代码从visual生成jpg(如果您知道,请告诉我参考):

它对一种视觉效果很好,但对另一种视觉效果来说,它突然在黑色背景下发生了变化。这是一张草图(我无法显示真实图像):

target.Render(element)
设置断点后,我意外发现有一个名为:

其值与视觉偏移量相同


这是什么?如何更改其值(受保护的
)?如何从visual生成jpg而不出现该问题?这可能与动画或数据模板有关吗?

目前,我使用钝反射进行修复:

element.GetType().GetProperty("VisualOffset",
    BindingFlags.NonPublic | BindingFlags.Instance).SetValue(element, new Vector());
target.Render(element);

它起作用了,但我怀疑后果。

看一看。这里的重要部分是
Rect-bounds=visualtreeheloper.getgenderantbounds(目标)
DrawingVisual dv=新的DrawingVisual()
@Nitro.de,这听起来很难看,但却是一个解决方案。如果你把它作为一个答案贴出来,我保证投你一票。不确定是否接受它(反射看起来和创建另一个视觉效果并用
VisualBrush
在其中绘制一样糟糕)。如果你看一看,他们也在使用
DrawingVisual
。@Sinatr,同样来自文章“其他人通过将要访问RTB的视频包装在边界中来解决这个问题。这将抽象原始父级应用的任何转换,现在RTB工作得很好。。。它“强加”在视觉树上。尽管如此,它仍然有效,因此这是一种选择。”
element.GetType().GetProperty("VisualOffset",
    BindingFlags.NonPublic | BindingFlags.Instance).SetValue(element, new Vector());
target.Render(element);