按钮控件,我们前面已经使用过,最基本的就是Button了,下面我们会继续学习其他的按钮控件。按钮是用来和程序进行交互的控件,点击按钮可以执行一些相应的逻辑。
winui3 C++ 主要有如下的按钮控件
- Button:标准点击按钮
- ToggleButton:可切换选中 / 未选中状态按钮
- RepeatButton:长按持续触发点击
- HyperlinkButton:超链接样式按钮
- SplitButton:主按钮 + 下拉菜单一体控件
- DropDownButton:仅带下拉菜单的按钮
- CommandBarButton / AppBarButton:工具栏图标按钮
- MenuFlyoutItem / ToggleMenuFlyoutItem:右键 / 下拉菜单项
下面我们演示xaml中如何创建上面这些控件,至于后台绑定事件,和前面的用法一样,最简单就是按F12,创建对应的事件函数,我们修改MainWindow.xaml
<StackPanel Spacing="15" Padding="20" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
<!-- 1. Button: Standard click button -->
<Button x:Name="NormalBtn" Content="Standard Button (Button)" Click="NormalBtn_Click"/>
<!-- 2. ToggleButton: Switchable checked/unchecked state button -->
<ToggleButton x:Name="ToggleBtn" Content="Toggle Button (ToggleButton)"/>
<!-- 3. RepeatButton: Trigger click continuously when holding down -->
<RepeatButton x:Name="RepeatBtn" Content="Repeat Button (RepeatButton)" Click="RepeatBtn_Click"/>
<!-- 4. HyperlinkButton: Hyperlink style button -->
<HyperlinkButton Content="Hyperlink Button (HyperlinkButton)" NavigateUri="https://learn.microsoft.com/windows/apps/winui"/>
<!-- 5. SplitButton: Combined main button + dropdown menu -->
<SplitButton Content="Split Button (SplitButton)">
<SplitButton.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text="Option A"/>
<MenuFlyoutItem Text="Option B"/>
</MenuFlyout>
</SplitButton.Flyout>
</SplitButton>
<!-- 6. DropDownButton: Button with dropdown menu only -->
<DropDownButton Content="Dropdown Button (DropDownButton)">
<DropDownButton.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text="Function 1"/>
<ToggleMenuFlyoutItem Text="Enable Mode"/>
</MenuFlyout>
</DropDownButton.Flyout>
</DropDownButton>
<!-- 8. MenuFlyoutItem / ToggleMenuFlyoutItem: Right-click / dropdown menu items -->
<Button Content="Right-click to open menu" Width="220">
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text="Normal Menu Item (MenuFlyoutItem)"/>
<ToggleMenuFlyoutItem Text="Checkable Menu Item (ToggleMenuFlyoutItem)"/>
<MenuFlyoutSeparator/>
<MenuFlyoutItem Text="Exit"/>
</MenuFlyout>
</Button.Flyout>
</Button>
</StackPanel>Code language: HTML, XML (xml)
在Click=”RepeatBtn_Click”和 Click=”RepeatBtn_Click” 按住F12创建两个函数,不用实现就可以,我们只是演示,感兴趣的读者,可以尝试去做一些逻辑功能。
void winrt::App6::implementation::MainWindow::NormalBtn_Click(winrt::Windows::Foundation::IInspectable const& sender,
winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
}
void winrt::App6::implementation::MainWindow::RepeatBtn_Click(winrt::Windows::Foundation::IInspectable const& sender,
winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
}
Code language: PHP (php)
Previous: WinUI 3 C++ 控件篇-基本文本控件
Next: WinUI 3 C++ 控件篇-选择与开关控件