Skip to content

按钮

按钮控件用于触发操作或命令。

普通按钮 (PushButton)

xml
<ui:PushButton Content="标准按钮" IconSource="{x:Static fi:FluentIcon.Send}"/>
<ui:PushButton Classes="Accent" Content="主题色标准按钮"/>
<ui:PushButton Content="透明标准按钮" Classes="Transparent"/>

工具按钮 (ToolButton)

只显示图标的按钮,通常用于工具栏。

xml
<ui:ToolButton Content="{x:Static fi:FluentIcon.GitHub}"/>
<ui:ToolButton Classes="Accent" Content="{x:Static fi:FluentIcon.Send}"/>
<ui:ToolButton Content="{x:Static fi:FluentIcon.Wifi}" Classes="Transparent"/>

圆角按钮

xml
<ui:PushButton
      Classes="Round"
      Content="圆角按钮"
      IconSource="{StaticResource Send}"/>
    <ui:PushButton Classes="Accent Round" Content="主题色圆角按钮"/>

圆角工具按钮

xml
<ui:ToolButton Classes="Round" Content="{x:Static fi:FluentIcon.GitHub}"/>
<ui:ToolButton Classes="Accent Round" Content="{x:Static fi:FluentIcon.Send}"/>

轮廓按钮

xml
<ui:PushButton Classes="Outlined" Content="轮廓按钮"/>
<ui:PushButton Classes="Outlined Round" Content="圆角轮廓按钮"/>
<ui:ToolButton Classes="Outlined" Content="{x:Static fi:FluentIcon.Add}"/>
<ui:ToolButton Classes="Outlined Round" Content="{x:Static fi:FluentIcon.Close}"/>

填充按钮 (FilledPushButton)

带背景填充的按钮样式。

xml
<ui:FilledPushButton Content="Custom" Background="DarkOrange"/>
<ui:FilledPushButton Content="Information" Classes="Information"/>
<ui:FilledPushButton Classes="Success" Content="Success"/>
<ui:FilledPushButton Classes="Attention" Content="Attention"/>
<ui:FilledPushButton Classes="Warning" Content="Warning"/>
<ui:FilledPushButton Classes="Error" Content="Error"/>

填充工具按钮 (FilledToolButton)

xml
<ui:FilledToolButton Content="{x:Static fi:FluentIcon.Game}" Background="DarkOrange"/>
<ui:FilledToolButton Content="{x:Static fi:FluentIcon.Info}" Classes="Information"/>
<ui:FilledToolButton Classes="Success" Content="{x:Static fi:FluentIcon.Sync}"/>
<ui:FilledToolButton Classes="Attention" Content="{x:Static fi:FluentIcon.Send}"/>
<ui:FilledToolButton Classes="Warning" Content="{x:Static fi:FluentIcon.GitHub}"/>
<ui:FilledToolButton Classes="Error" Content="{x:Static fi:FluentIcon.Delete}"/>

描边按钮 (OutlinePushButton)

加入不同的组可启用单选多选功能

xml
<StackPanel Orientation="Horizontal" Spacing="8">
  <ui:OutlinePushButton
    Content="音乐"
    Group="{Binding MainGroup}"
    IconSource="{x:Static fi:FluentIcon.Music}"
    Tag="Music"/>
  <ui:OutlinePushButton
    Content="电影和电视"
    Group="{Binding MainGroup}"
    IconSource="{x:Static fi:FluentIcon.Video}"
    Tag="Video"/>
  <ui:OutlinePushButton
    Content="游戏"
    Group="{Binding MainGroup}"
    IconSource="{x:Static fi:FluentIcon.Game}"
    Tag="Game"/>
  <ui:OutlinePushButton
    Content="GitHub"
    Group="{Binding MainGroup}"
    IconSource="{x:Static fi:FluentIcon.GitHub}"
    Tag="GitHub"/>
  <ui:OutlinePushButton
    Content="关于我们"
    Group="{Binding MainGroup}"
    Tag="About"/>
</StackPanel>
csharp

public OutlineButtonGroup MainGroup { get; } = new OutlineButtonGroup();

// 设置选择模式
MainGroup.SelectionMode = OutlineButtonSelectionMode.Multiple;

MainGroup.SelectionChanged += g =>
{
    if (g.SelectionMode == OutlineButtonSelectionMode.Single)
    {
        Console.WriteLine($"Single Selected Item: {g.SelectedItem.Tag}");
    }
    else
    {
        foreach (var btn in g.SelectedItems)
        {
            Console.WriteLine($"Multiple Selected Item: {btn.Tag}");
        }
    }
};

描边工具按钮 (OutlinedToolButton)

  • 使用方法和 OutlinedPushButton一致
xml
<ui:OutlineToolButton Content="{x:Static fi:FluentIcon.Send}"/>
<ui:OutlineToolButton Content="{x:Static fi:FluentIcon.Add}"/>
<ui:OutlineToolButton Content="{x:Static fi:FluentIcon.Home}"/>

胶囊单选按钮

xml
<RadioButton Content="Options 1" Theme="{StaticResource ChipsRadioButton}"/>
<RadioButton Content="Options 2" Theme="{StaticResource ChipsRadioButton}"/>
<RadioButton Content="Options 3" Theme="{StaticResource ChipsRadioButton}"/>
<RadioButton Content="Options 4" Theme="{StaticResource ChipsRadioButton}"/>

带子标题的单选按钮 (SubTitleRadioButton)

xml
<ui:SubTitleRadioButton Content="扬声器" SubTitle="Realted(R) Audio"/>
<ui:SubTitleRadioButton Content="耳机" SubTitle="AirPods Pro 2"/>
<ui:SubTitleRadioButton Content="控制器" SubTitle="Xbox Wireless Controller"/>
<ui:SubTitleRadioButton Content="蓝牙" SubTitle="ProjectLuo M2"/>

下拉按钮 (DropDownButton)

  • 透明下拉按钮 Classes="Transparent"
xml
<DropDownButton Width="256">
  <Grid ColumnDefinitions="Auto, *" ColumnSpacing="8">
    <PathIcon Data="{x:Static fi:FluentIcon.Mail}"/>
    <TextBlock Grid.Column="1" Text="邮件"/>
  </Grid>
  <DropDownButton.Flyout>
    <ui:FluentMenuFlyout>
      <MenuItem Header="发送">
        <MenuItem.Icon>
          <PathIcon Data="{x:Static fi:FluentIcon.Send}"/>
        </MenuItem.Icon>
        <MenuItem.Items>
          <MenuItem Header="删除"/>
          <MenuItem Header="新建"/>
        </MenuItem.Items>
      </MenuItem>
      <MenuItem Header="保存">
        <MenuItem.Icon>
          <PathIcon Data="{x:Static fi:FluentIcon.Save}"/>
        </MenuItem.Icon>
      </MenuItem>
      <Separator HorizontalAlignment="Stretch"/>
      <MenuItem Header="撤销"/>
      <MenuItem Header="发送到"/>
      <MenuItem Header="分享"/>
    </ui:FluentMenuFlyout>
  </DropDownButton.Flyout>
</DropDownButton>

基于 MIT 许可发布