我需要访问没有指定宽度的边框的实际宽度。有人告诉我,我不能在 WinRT 上这样做,所以我使用了 Florian-Gl 的代理(来自这里)。
问题是我需要在页面资源上创建该代理,如下所示:
<Page.Resources>
<utils:ActualSizePropertyProxy Element="{Binding ElementName=noteBorder}" x:Name="proxy" />
</Page.Resources>
问题是我无法从资源中访问该 noteBorder 元素,但我可以访问page 本身的pageRoot 。
我想我可以使用 ElementName / Path 来访问 noteBorder。
但是有一些奇怪的东西:
结构类似于:
Page (pageRoot) > Grid > ListView > ListView.ItemTemplate > Grid > Border (noteBorder)
因此,如果我在边界的同一级别创建代理,它不会运行,但如果我将 ListView 更改为 ItemsControl,它将按预期运行和工作。
如果将它放在边框的同一级别,我将ElementName更改为pageRoot它至少会运行。
因此,如果我使用 ListView,如果我放置 noteBorder(即使我可以访问它),它也不会运行,但会在 ItemsControl 上工作,另一方面,如果我有pageRoot,它会以所有方式工作。
所以问题是:有没有办法从资源中访问noteBorder?或者也许是一种从另一个地方访问它但工作的方法:P