Soru Wpf iletişim kutusunda varsayılan düğme nasıl seçilir?


Bir WPF iletişim kutusu oluşturuyorum. Bizim normal gibi messagebox ile ok ve cancel buton. Böyle bir iletişim kutusu nasıl oluşturulur? Ok diyalog açıldığında buton seçili mi?


25
2017-09-29 06:16


Menşei


OK düğmesi için IsDefault = True değerini ayarlama - Kishore Kumar
Sadece Enter düğmesine basılmasını sağlar, ancak gösterme butonu seçili değildir - Abhishek


Cevaplar:


Pencerenin Varsayılan düğmesini ayarlamak için

Varsayılan düğmelerinizi ayarlayın IsDefault özelliği doğru

Bir düğmenin ayarlayarak bir pencerenin İptal düğmesini de ayarlayabilirsiniz. IsCancel özelliği doğru


Pencerede Seçilen (odaklanmış) tuşunu ayarlamak için

Belirli bir düğmeyi seçmek isterseniz, şu şekilde Odaklama yöntemini kullanın:

yourButton.Focus();

Pencere yüklendiğinde bunu yapabilirsiniz (Window_Loaded olayında).

Pencereniz açıldığında belirli bir düğmeyi seçmek için IsTabStop özelliği doğru olarak ayarlanmış ve TabIndex özelliği Pencere üzerindeki diğer kontrollerden daha düşüktür.


51
2017-09-29 06:18



Yardım için Thnx ama çalışmıyor. .it butonu seçili değil, sadece herhangi bir alternatifi girmek için butonu seçili mi? - Abhishek
@iamabhiee Odağı bir düğmeyle ayarlamak için düzenlenmiştir. HTH. - Jay Riggs
.Focus () Çalıştığım İçin Harika Teşekkürler :) - Abhishek


Sadece yeni bir düğme şablonu oluşturun ve IsDefault = Sal durumu için görünümü ve hissi değiştirin. Sadece bir stil yarattım ve durumu değiştirdim.

<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
2017-09-29 06:51