【问题标题】:ToggleButtons in WPFWPF 中的切换按钮
【发布时间】:2014-09-12 08:09:29
【问题描述】:

我有两个ToggleButtons。我只希望其中一个在任何时候都处于Pressed 状态。所以假设Model ToggleButton被按下:

我想实现以下概念:

  1. 如果我按下Drawing ToggleButtonModel ToggleButton 将被取消按下,Drawing ToggleButton 将进入按下状态。
  2. 如果按下处于按下状态的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>

更新:

使用 cmets 下提供的链接,我想出了这个:

<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Model" IsChecked="True" />
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Drawing" />

现在上面的代码给了我两个按钮,但是我该如何设置它们的样式呢?我知道如何设计风格。但我不知道这里要设计什么风格?我的意思是我已经在这里填写了 style 属性,如何设置 ToggleButton 本身的样式?

【问题讨论】:

  • 看起来您需要的是 2 个单选按钮,如果您不喜欢它们的外观,只需更改它们的模板即可。
  • @KingKing 哦,你是对的。谢谢你的智慧。
  • @Vahid - 在 DLeh 提供的链接中获得最多支持的回答对您有用。
  • @Vahid 背景很简单,但形状意味着为按钮创建一个全新的模板。

标签: c# wpf togglebutton


【解决方案1】:

由于RadioButton继承自ToggleButton,你可以设置ToggleButton的样式,使用BasedOn继承ToggleButton的默认样式 像这样:

<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>

【讨论】:

  • 谢谢罗希特。这正是我开始所需要的。
【解决方案2】:

根据this answerDLeh 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 示例,您可以开始使用。

【讨论】:

  • 非常感谢 Rachel 提供的链接。这对我帮助很大。
  • @Vahid Np,我在创建自己的模板时经常使用该链接,因为实际上除了基本外观之外,好的模板还有很多内容 :)
猜你喜欢
  • 2016-11-14
  • 1970-01-01
  • 2023-01-19
  • 2015-02-04
  • 2010-12-04
  • 2011-10-13
  • 2011-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多