我是WPF的新手。我有WPF应用程序菜单中的单选按钮列表。我改变了单选按钮的样式,看起来像文本块作为子菜单。现在的问题是,当我试图在单选按钮中包装和图像和文本时,它没有显示它。但是,如果我删除我在单选按钮上添加的样式,使其外观和感觉像文本块,那么包装工作正常,但它的显示辐射按钮图标,我不需要。
请参阅以下代码:
<StackPanel.Resources>
<Style x:Key="RadioButtonMenuStyle" TargetType="RadioButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<TextBlock Text="{TemplateBinding Content}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Height" Value="36"/>
<Setter Property="Foreground" Value="Black" />
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="TextWrapping" Value="Wrap"/>
</TextBlock.Style>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</StackPanel.Resources>
------------------------------------------------------------------------
<RadioButton Name="rbttest" GroupName="rbtgroup" Background="{x:Null}" Style="
{StaticResource RadioButtonMenuStyle}" IsChecked="True">
<WrapPanel>
<Image Source="/WpfApplication1;component/Images/Test.ico" Width="16" Height="16"
Margin="0,0,5,0" />
<TextBlock Text="Test" Foreground="Green" />
</WrapPanel>
</RadioButton>
templateBinding内容是否导致问题?
答案 0 :(得分:0)
在您的模板中,您将TextBlock.Text
绑定到RadioButton.Content
,但您的RadioButton
内容实际上是一个UI元素(WrapPanel
)。
摆脱模板中的TextBlock
并将其替换为ContentPresenter
。您不需要在演示者上设置任何属性;它已经知道如何在模板化的父级上找到内容。