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