我对 WPF 很陌生,我遇到了需要帮助的问题:
我的环境是.net 4,VS2010,win 7
我想定义一个样式切换按钮,我将从用户控件中使用它。当我在 UserControl 中声明 ToggleButton 控件时,我想根据按钮状态提供 2 个可能的内容。
我的问题:我不知道如何用 2 个内容声明我的按钮(一个在 IsChecked=true 时,一个在 IsChecked=false 时),我已经包含了一些我编写的无法编译的代码。
先感谢您
...
我对 WPF 很陌生,我遇到了需要帮助的问题:
我的环境是.net 4,VS2010,win 7
我想定义一个样式切换按钮,我将从用户控件中使用它。当我在 UserControl 中声明 ToggleButton 控件时,我想根据按钮状态提供 2 个可能的内容。
我的问题:我不知道如何用 2 个内容声明我的按钮(一个在 IsChecked=true 时,一个在 IsChecked=false 时),我已经包含了一些我编写的无法编译的代码。
先感谢您
...
根据您的 2 个内容,您可以执行以下操作:
<ToggleButton IsChecked="True">
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Button></Button>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="Red" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
在此示例中,ToggleButton 在选中时具有一个内容(按钮),在未选中时具有其他内容(红色背景边框)。您将必须处理操作以单独切换 IsChecked 状态。
还有一件事,如果 ToggleButton 是 UserControl 中的唯一控件,则无需使用 UserControl,只需重新设置 ToggleButton 的样式即可。当您希望将控件组合在一起以具有特定功能(例如搜索文本框和一起用作搜索控件的“开始”按钮)时,用户控件更合适。
你应该能够使用类似的东西:
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Content">
<Setter.Value>
<Grid>
<TextBlock>Click Me</TextBlock>
</Grid>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content">
<Setter.Value>
<Grid>
<TextBlock>Click Me Again</TextBlock>
</Grid>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
您可以通过设置 ControlTemplate 来设置 ToggleButton 的样式
检查WPF ControlTemplate 触发提示。这会帮助你