在我的WPF窗口中,我需要绑定到ControlTemplate内部的值。
这是我的代码(最简化):
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="MyBorder" Height="100" Width="100" Background="Green" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel>
<Button Name="MyButtonInstance" />
<Rectangle Name="MyRectangle" Width="100" Height="200"
Fill="{Binding ????}" />
</StackPanel>
</Window>
我想将 MyRectangle 的填充属性绑定到属于 MyBorder 的值(背景 ) - 这是Button ControlTemplate的一部分。有可能吗?
我试过了
Fill="{Binding ElementName=MyBorder, Path=Background}"
但它不起作用......
答案 0 :(得分:0)
我认为你不能这样绑定。你可以做的是拥有一个提供给边框和矩形的公共资源。参考下面的代码。
<Window.Resources>
<SolidColorBrush x:Key="SameKey"
Color="Green"/>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="MyBorder" Height="100" Width="100" Background="{StaticResource SameKey}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<StackPanel>
<Button Name="MyButtonInstance" />
<Rectangle Name="MyRectangle" Width="100" Height="200"
Fill="{StaticResource SameKey}" />
</StackPanel>
</Grid>