如何在Xaml中当按钮被点击时改变按钮的内容?

7

我有一个按钮内容名为“暂停”按钮。当我点击按钮时,按钮内容应该更改为“恢复”,如果再次按下“恢复”按钮,则应显示“暂停”。

XAML 代码:

 <Button Style="{StaticResource CommonButtonStyle}" Template="{DynamicResource GlassButton}" ToolTip="F9" Click="Hold_Click" PreviewKeyDown="Hold_PreviewKeyDown" Name="OK" Margin="1,49,25,0" Grid.Column="2" Grid.Row="13" Grid.RowSpan="2">
        <StackPanel Style="{StaticResource ButtonStackPanel}">
            <Image Style="{StaticResource CancelImages}" />
            <TextBlock Text="{Loc lblHold}" Style="{StaticResource ButtonTextBlock}" />
        </StackPanel>
  </Button>
3个回答

11
您可以在按钮的“单击”事件中尝试类似以下的内容:
private void holdResumeButton_Click(object sender, RoutedEventArgs e)
{
        if ((string)holdResumeButton.Content == "Hold")
            holdResumeButton.Content = "Resume";

        else
            holdResumeButton.Content = "Hold";

}

XAML:

<Button x:Name="holdResumeButton" 
        Content="Hold"
        Click="holdResumeButton_Click"/>

1
当XAML可以完成任务时,使用代码后台并不是一个好的解决方案。请查看@Dennis的解决方案。 - Askolein

7

使用 ToggleButton

        <Style x:Key="HoldOrResumeButton" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
            <Setter Property="Content">
                <Setter.Value>
                    <TextBlock Text="Hold"/>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource Mode=Self}}" Value="True">
                    <Setter Property="Content">
                        <Setter.Value>
                            <TextBlock Text="Resume"/>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接