请问在WPF中,怎样在VisualBrush中的到引用它的元素的ActualWidth和ActualHeight?

yezzi 2009-03-26 05:20:37
比如下面的代码:
[code=XAML]
<Page x:Class="wpf.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300" Width="431">
<Page.Resources>
<VisualBrush x:Key="BrushStyle1">
<VisualBrush.Visual>
<Border Background="blue" BorderBrush="red" Width="???????????" Height="???????????" BorderThickness="1"/>
</VisualBrush.Visual>
</VisualBrush>
</Page.Resources>

<Grid>
<Button Width="50" Height="50" Name="button1" VerticalAlignment="Top" Background="{StaticResource BrushStyle1}">Button</Button>
<Border Width="200" Height="200" Name="border1" Background="{StaticResource BrushStyle1}"/>
</Grid>
</Page>
[/code]

问号里面该怎么填,才能得到引用它的Button或Border的ActualWidth和ActualHeight呢?

我有实验过下面这个方法,但是没用。。。。好烦。。。。
[code=XAML]
Width="{Binding Path=ActualWidth,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Border},AncestorLevel=1}}"
[/code]

望高手指教!
...全文
198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckapple2 2009-05-04
  • 打赏
  • 举报
回复
可以的
yezzi 2009-05-04
  • 打赏
  • 举报
回复
关于楼上的方法,border没法用template吧
DDbibi 2009-04-25
  • 打赏
  • 举报
回复
style 里面设置setter template
template 里面用 visual brush
brush width 用 {templatebinding targetProperty}
yezzi 2009-03-30
  • 打赏
  • 举报
回复
没有人知道吗T_T
yezzi 2009-03-27
  • 打赏
  • 举报
回复
谢谢高手的解答!

不过当有两个不同Name的元素引用那个VisualBrush的时候,一个有用,另一个就没用了

所以我想要是能够通过探测引用他的父元素,就比较完美了

不知道有没有这种方法?
拉达曼迪斯II 2009-03-26
  • 打赏
  • 举报
回复
Width={Binding ElementName=YourButtonName,Path=ActualWidht}

8,755

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧