纯属偶然,触发放在模板后

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012431412/article/details/26166987


<Grid>      
        <Button HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="48" Padding="20" Height="100" Width="200">           
            <Button.Template>

            <!-- 先定义button的模板-->
                <ControlTemplate>                    
                    <Rectangle RadiusX="10" RadiusY="10" Stroke="BlueViolet" StrokeThickness="3" x:Name="myRectangle">  模板为圆角矩形,名字为myRectangle
                        <Rectangle.Fill>
                            <VisualBrush Opacity="0.7">
                                <VisualBrush.Visual>
                                    <TextBlock Name="myTextBlock" Foreground="LightYellow" Background="DarkBlue" Padding="10" Text="模板按钮"/> button上的文字用文本快呈现
                                </VisualBrush.Visual>
                            </VisualBrush>
                        </Rectangle.Fill>
                    </Rectangle>

              <!--模板定义完后,才定义控件触发器,若放在模板之前,targetName无法找到myRectangle-->
                    <ControlTemplate.Triggers>
                        <Trigger Property="UIElement.IsMouseOver" Value="True">
                            <Setter TargetName="myRectangle" Property="Stroke" Value="Green"/>
                            <Setter TargetName="myTextBlock" Property="Foreground" Value="Red"/>
                        </Trigger>
                        <Trigger Property="Button.IsPressed" Value="True">
                            <Setter TargetName="myRectangle" Property="Stroke" Value="LightGreen"/>
                            <Setter TargetName="myTextBlock" Property="Background" >
                                <Setter.Value>
                                    <LinearGradientBrush>
                                        <GradientStop Offset="1" Color="DarkBlue"/>
                                        <GradientStop Offset="0.5" Color="Blue"/>
                                        <GradientStop Offset="0" Color="DarkBlue"/>
                                    </LinearGradientBrush>
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>

猜你喜欢

转载自blog.csdn.net/u012431412/article/details/26166987