我有两个ToggleButtons
。我希望他们中的任何一个在任何时候都处于Pressed
状态。所以,让我们说Model ToggleButton
被迫:
我想实现以下概念:
Drawing ToggleButton
,Model ToggleButton
将被取消,Drawing ToggleButton
将进入按下状态。 Model Button
,则不会发生任何事情。顺便说一下,到目前为止我所做的一切都是:(
<ToggleButton Width="50" Height="23" Margin="0 0 0 0">Model</ToggleButton>
<ToggleButton Width="50" Height="23" Margin="0 0 7 0">Drawing</ToggleButton>
更新
使用评论下提供的链接,我想出了这个:
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Model" IsChecked="True" />
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Drawing" />
现在上面的代码给了我两个按钮,但是我如何设计这些呢?我知道如何风格。但我不知道这里的风格是什么?我的意思是我已经在这里填充了样式属性,如何设置ToggleButton
本身的样式?
答案 0 :(得分:3)
由于 RadioButton继承自ToggleButton ,您可以为其设置ToggleButton样式, 使用BasedOn继承ToggleButton的默认样式 < / strong>像这样:
<RadioButton GroupName="Test" Width="50" Height="23" Margin="0 0 7 0"
Content="Model">
<RadioButton.Style>
<Style TargetType="ToggleButton"
BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Background" Value="Red"/>
<!-- Set other properties here-->
</Style>
</RadioButton.Style>
</RadioButton>
答案 1 :(得分:2)
根据this answer DLeh linked in comments,您可以通过设置RadioButton的样式来使用ToggleButton样式。
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" />
要回答关于如何为此自定义样式属性的第二个问题,您可以创建另一种继承自基本ToggleButton样式的样式,并使用它代替。像这样:
<Style x:Key="CustomToggleButtonStyle"
TargetType="{x:Type RadioButton}"
BasedOn="{StaticResource {x:Type ToggleButton}}">
// Custom Style setters here
</Style>
<RadioButton Style="{StaticResource CustomToggleButtonStyle}" />
当然,总是可以从头开始完全重写整个模板。 MSDN有一个很好的例子,您可以使用custom ToggleButton Template开始。