1

我对 WPF 很陌生,我遇到了需要帮助的问题:

我的环境是.net 4,VS2010,win 7

我想定义一个样式切换按钮,我将从用户控件中使用它。当我在 UserControl 中声明 ToggleButton 控件时,我想根据按钮状态提供 2 个可能的内容。

我的问题:我不知道如何用 2 个内容声明我的按钮(一个在 IsChecked=true 时,一个在 IsChecked=false 时),我已经包含了一些我编写的无法编译的代码。

先感谢您

...

4

3 回答 3

1

根据您的 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 的样式即可。当您希望将控件组合在一起以具有特定功能(例如搜索文本框和一起用作搜索控件的“开始”按钮)时,用户控件更合适。

于 2011-01-14T08:32:20.797 回答
1

你应该能够使用类似的东西:

      <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>
于 2011-01-14T08:30:57.347 回答
0

您可以通过设置 ControlTemplate 来设置 ToggleButton 的样式

检查WPF ControlTemplate 触发提示。这会帮助你

于 2011-01-14T08:24:57.580 回答