3

我正在创建一个从XamlCompositionBrushBase继承类,并且想知道画笔连接到OnConnected.

我需要这些信息来在我的合成中创建一个与我的视觉大小相同的表面,以便不仅具有正确的像素密度,而且还可以将视觉坐标映射到表面空间。

即,如果我有一个坐标50, 75,我需要知道视觉对象的宽度/高度以将表面位置映射到视觉对象上的那个位置。

由于画笔是一个依赖对象,我尝试使用var parent = VisualTreeHelper.GetParent(this);但抛出异常:

System.Exception 发生 HResult=0x8000FFFF
消息=灾难性故障(来自 HRESULT 的异常:0x8000FFFF (E_UNEXPECTED))
来源=

如果不使用父 UIElement 上的附加属性,这可能吗?

谢谢

4

1 回答 1

0

你不能——因为一个画笔可以一次连接到多个视觉效果,实际上并没有“大小”的概念。好吧,无论如何都不是在 UWP 中的 XAML 顶层。

由于画笔可以在资源字典中使用,因此可以在多个地方作为同一个实例应用,每个地方都有不同的视觉大小,你真的不想破解这个问题,因为你几乎肯定会破坏画笔的任何用法资源字典。

(是的,令人沮丧。)

于 2018-02-27T10:55:43.507 回答