2012-08-22 62 views
0

我正在为我的WPF应用程序开发Ribbon,我需要将两个RibbonRadioButton添加到RibbonGroup中。我已经这样做了,一切完美的作品:更改RibbonRadioButton的外观

<rb:RibbonGroup> 

    <rb:RibbonRadioButton Label="Option one" IsChecked="{Binding OptionOne}" /> 
    <rb:RibbonRadioButton Label="Option two" IsChecked="{Binding OptionTwo}" /> 

</rb:RibbonGroup> 

但RibbonRadioButtons看起来像一个“常规按钮”,我需要他们看起来像经典被按压单选按钮我们都知道这是由的一个小圆圈和一个标签。

所以,有没有办法来改变RibbonRadioButtons的外观?

在此先感谢

回答

1

这为我工作:

<rb:RibbonMenuButton.Resources> 
    <ControlTemplate x:Key="RibbonRadioButtonControlTemplate1" TargetType="{x:Type rb:RibbonRadioButton}"> 
     <RadioButton GroupName="{Binding Name, RelativeSource={RelativeSource AncestorType=rb:RibbonGroup}}" Content="{TemplateBinding Label}" IsChecked="{Binding IsChecked}"/> 
    </ControlTemplate> 
</rb:RibbonMenuButton.Resources> 

    <rb:Ribbon HorizontalAlignment="Left" Margin="111,86,0,88.867" Width="289.14"> 
    <rb:RibbonGroup x:Name="grp1"> 
     <rb:RibbonRadioButton Label="Option one" IsChecked="{Binding OptionOne}" Template="{DynamicResource RibbonRadioButtonControlTemplate1}" /> 
     <rb:RibbonRadioButton Label="Option two" IsChecked="{Binding OptionTwo}" Template="{DynamicResource RibbonRadioButtonControlTemplate1}" /> 
    </rb:RibbonGroup> 
    </rb:Ribbon> 
+0

为了得到这个工作,我必须将'IsChecked'属性上的绑定更改为以下内容,以便它可以找到正确的源:'{Binding IsChecked,RelativeSource = {RelativeSource AncestorType = {x:Type Ribbon: RibbonRadioButton}}}'。 – Sheridan

1

下面是标准的单选按钮的模板:http://msdn.microsoft.com/en-us/library/ms751600.aspx

编辑:

我以为RibbonRadioButton是你自己控制;但它是.net 4.5中的新功能!我无法找到它在MSDN模板的,所以我想你必须通过混合得到它。将控件放在新的Blend WPF项目的新窗口上;右键单击设计视图上的控件 - >编辑模板 - >编辑副本;那么你可以编辑该模板中的“XAML视图” ......

+0

谢谢回答,但这种风格似乎没有一个'RibbonRadioButton' – Dante

+0

我编辑我的回答工作 – franssu

+0

+1为混合方向,如果你没有混合,虽然你总是可以通过在VS的解决方案,比如x字符串做搜索:主要=“RibbonControlStyle”,你应该能够找到默认模板的方式也。 –