我正在創建一個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