【发布时间】:2012-04-15 13:24:46
【问题描述】:
我有以下用户控制:
<UserControl.Resources>
<Style TargetType="HeaderedItemsControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HeaderedItemsControl">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock FontFamily="Segoe Script"
Text="{Binding ElementName=myHeaderedItemsControl.Header, Path=Category, Mode=OneWay}"
FontWeight="Bold"
HorizontalAlignment="Center"
Foreground="Olive"
Margin="20"
FontSize="50"
TextWrapping="Wrap"
Name="myText"/>
<ItemsPresenter Grid.Row="1" Grid.Column="1"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot">
<TextBlock.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="-90"/>
<TranslateTransform/>
</TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
</StackPanel>-->
<HeaderedItemsControl Name="myHeaderedItemsControl" Header="Predrag">
</HeaderedItemsControl>
</Grid>
基本上我想要的是将Textblock 文本属性绑定到HeaderedItemsControl 标题属性。
【问题讨论】:
-
你为什么不像我在你的other question中显示的那样使用
ContentPresenter和ContentSource="Header"? -
因为我没有设置合适的样式...
-
您可以将其包装在
Border中并在那里设置属性,通常就是这样做的。 (也可以通过附加属性设置文本属性,例如TextElement.Foreground) -
为什么
ContentPresenter是更好的方法? -
因为它是为此而生的,它也不将内容限制为纯文本。除了绑定到标题之外,它还允许您连接
HeaderTemplate和HeaderTemplateSelector(这会在您使用ContentSource时自动发生)
标签: .net wpf xaml binding wpf-controls