簡體   English   中英

我也想為其他按鈕重用第一個按鈕的樣式塊,我該怎么辦?

[英]I want To reuse the Style block of First Button for others button too, How should I do?

我為按鈕的 MouseEnter 效果編寫了一個簡單的代碼。 還有 2 個其他按鈕,我想要相同的效果。 我如何重用它們,而不是再次編寫相同的代碼?

<Button Content="Common Factor" FontSize="32" Foreground="White"
 Background="#FF3399FF" Width="250" Height="60" Margin="20" >
                <Button.Style>
                    <Style TargetType="Button">
                        <Style.Triggers>
                            <EventTrigger RoutedEvent="MouseEnter">
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation Duration="0:0:0.500" Storyboard.TargetProperty="Width" To="300"/>
                                        <DoubleAnimation Duration="0:0:0.500" Storyboard.TargetProperty="Height" To="80"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </EventTrigger>
                        </Style.Triggers>
                    </Style>
                </Button.Style>
            </Button>

            <Button Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>
            <Button Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>

回答你的問題

您可以像這樣在ResourceDictionary中聲明您的Style

<Window.Resources>
    <Style TargetType="Button" x:Key="MyButtonStyle">
        <Style.Triggers>
            <EventTrigger RoutedEvent="MouseEnter">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Duration="0:0:0.500" Storyboard.TargetProperty="Width" To="300"/>
                        <DoubleAnimation Duration="0:0:0.500" Storyboard.TargetProperty="Height" To="80"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

通過給它一個鍵(這里是"MyButtonStyle" ),您可以使用StaticResource標記從其他地方引用它:

<Button Style="{StaticResource MyButtonStyle}" Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>
<Button Style="{StaticResource MyButtonStyle}" Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>
<Button Style="{StaticResource MyButtonStyle}" Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>

到 go 進一步與 Styles

請注意,如果您沒有通過刪除x:Key="MyButtonStyle"標記來為Style指定顯式鍵,那么您的Style會自動應用於所有沒有顯式Style屬性集的Controls 例如,一個Style定義如下:

<Window.Resources>
    <Style TargetType="Button">
        <Style.Setters>
            <Setter Property="Background" Value="Red"/>
        </Style.Setters>
    </Style>
</Window.Resources>

將自動應用於Window中沒有顯Style屬性的所有Buttons

您可以將您的樣式存儲在任何資源字典 object 中,例如 App.xaml 或Window.Resources中的MergedDictionary

<Window.Resources>
                <Style TargetType="Button" x:Key="myStyle">
                    <Style.Triggers>
                        <EventTrigger RoutedEvent="MouseEnter">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0.500" Storyboard.TargetProperty="Width" To="300"/>
                                    <DoubleAnimation Duration="0:0:0.500" Storyboard.TargetProperty="Height" To="80"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Style.Triggers>
                </Style>
</Window.Resources>

並通過創建StaticResource類型的對象來重用它:

<Button Style="{StaticResource myStyle}" Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>
<Button Style="{StaticResource myStyle}" Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>
<Button Style="{StaticResource myStyle}" Content="Common Factor" FontSize="32" Foreground="White" Background="#FF3399FF" Width="250" Height="60" Margin="20"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM