我正在创建一个WPF对话框。它就像我们的正常messagebox
与ok
和cancel
按钮。如何创建这样的对话框,以便在打开对话框时选择Ok
按钮?如何在wpf对话框中选择默认按钮?
23
A
回答
48
要设置窗口的默认按钮
设置默认按钮的IsDefault property为true。
请注意,您也可以通过将按钮的IsCancel property设置为true来设置窗口的取消按钮。
要设置一个窗口
选择的(聚焦)按钮,如果你想选择一个特定的按钮,然后使用Focus方法是这样的:
yourButton.Focus();
你可能会做这是在窗口加载时(在Window_Loaded事件中)。
要在窗口打开时选择一个特定按钮,请确保它的IsTabStop property设置为true,并确保其TabIndex property低于Window上的任何其他控件。
1
只需创建一个新的按钮模板并更改IsDefault = Tue状态的外观。 我刚创建了一个样式并修改了状态。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
x:Class="WpfApplication7.Window3"
x:Name="Window"
Title="Window3"
Width="640" Height="480" FocusManager.FocusedElement="{Binding ElementName=test}">
<Window.Resources>
<Style x:Key="ButtonFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2"
Stroke="red" StrokeThickness="1"
SnapsToDevicePixels="true" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{StaticResource ButtonFocusVisual}"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderThickness="1" BorderBrush="#FF040000" CornerRadius="5">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF7A7A7A" Offset="0"/>
<GradientStop Color="#FFE7E7E7" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsDefault" Value="True">
<Setter Property="Background" TargetName="border">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFA76F6F" Offset="0"/>
<GradientStop Color="#FFE7E7E7" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsFocused" Value="True"/>
<Condition Property="IsDefault" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="border">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFC2BE5B" Offset="0.007"/>
<GradientStop Color="#FFE7E7E7" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="BorderBrush" TargetName="border" Value="#FF01641D"/>
<Setter Property="BorderThickness" TargetName="border" Value="2"/>
<Setter Property="Background" TargetName="border">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF528159" Offset="0"/>
<GradientStop Color="#FFE7E7E7" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Button x:Name="test" Content="Button" HorizontalAlignment="Left" Height="26" Margin="130,157,0,0" VerticalAlignment="Top" Width="164" Style="{DynamicResource ButtonStyle1}" IsDefault="True"/>
<Button Content="Button" Height="26" Margin="298,157,162,0" VerticalAlignment="Top" Style="{DynamicResource ButtonStyle1}"/>
<Button Content="Button" HorizontalAlignment="Right" Height="26" Margin="0,157,-6,0" VerticalAlignment="Top" Width="164" Style="{DynamicResource ButtonStyle1}"/>
</Grid>
相关问题
- 1. 如何默认选择单选按钮?
- 2. 在一个组框中选择VB.NET默认单选按钮
- 3. 如何在创建JFileChooser对话框时选择默认的FileFilter?
- 4. 如何在asp.net中默认选择一个单选按钮
- 5. MFC:如何让子对话框的默认按钮工作?
- 6. ADF单选按钮默认选择
- 7. Symfony2默认选择单选按钮
- 8. 角2:默认单选按钮选择
- 9. 如何禁用Qt对话框默认按钮更改与选项卡导航
- 10. 如何选择Ember中的默认单选按钮?
- 11. 让XP自动“按下”对话框上的默认按钮
- 12. 默认选择框
- 13. 当用户在setOnPreferenceChangeListener中选择否定按钮时关闭确认对话框
- 14. 基于组合框选择的WPF按钮IsEnabled覆盖默认样式
- 15. 如何删除“默认按钮”边框?
- 16. GTK:为对话框设置默认按钮
- 17. 默认关闭模式对话框关闭x按钮
- 18. 如何在Angular中设置默认选中单选按钮
- 19. JQuery对话框:选择确认选项后在对话框中显示消息
- 20. 如何使WPF组合框默认选择空白
- 21. 如何处理WPF中多个按钮的对话框?
- 22. Rails的确认对话框按钮
- 23. jQuery确认按钮不在弹出确认()对话框中
- 24. 如何在WPF中获取我的按钮的默认syle?
- 25. 选择单选按钮,wpf
- 26. 如何在单选按钮中设置默认选择 - 活动形式yii
- 27. 如何访问首选项对话框中的对话框按钮
- 28. 默认对话框填充
- 29. 对话框默认可见
- 30. wpf combobox默认从itemssource中选择
设置ISDEFAULT = True以确定按钮 –
它只允许节省输入按钮,但没有显示按钮被选中 – Abhishek