【问题标题】:Add Content to Button in Style将内容添加到样式中的按钮
【发布时间】:2016-12-09 14:57:53
【问题描述】:

您好,我正在尝试覆盖 WPF 上的默认鼠标悬停事件。

我已经解决了这个问题,但现在显示任何文本内容时出现问题

样式设置器:

<Style x:Key="MyButton" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="Content"  Value="Submit" />
        <Setter Property="Template">


            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="Border" BorderThickness="0" BorderBrush="White" Background="#FF7AB800" Height="24" Margin="0,0,0.2,0" />



                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True" >

                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

这是我的按钮代码:

 <Button x:Name="submitBtn" HorizontalAlignment="Left" Margin="402,296,0,0" VerticalAlignment="Top" Width="75" Foreground="Black" FontFamily="Calibri Light" FontSize="16" Style="{StaticResource MyButton}" Content="Submit"/>

【问题讨论】:

    标签: wpf button


    【解决方案1】:

    您缺少ContentPresenter。另外,我建议直接从样式中删除设置内容值。您希望在控件本身内执行此操作。

    <Style x:Key="MyButton" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="Border" 
                            BorderThickness="0" 
                            BorderBrush="White" 
                            Background="#FF7AB800" 
                            Height="24" 
                            Margin="0,0,0.2,0">
                         <ContentPresenter Margin="2"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center"
                                RecognizesAccessKey="True" 
                                Content="{TemplateBinding Content}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True" >
    
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    
    <Button x:Name="submitBtn" 
            HorizontalAlignment="Left" 
            Margin="402,296,0,0" 
            VerticalAlignment="Top" 
            Width="75" 
            Foreground="Black" 
            FontFamily="Calibri Light" 
            FontSize="16" 
            tyle="{StaticResource MyButton}" 
            Content="Submit"/>
    

    【讨论】:

      【解决方案2】:

      首先需要加上x:type

        <Style x:Key="MyButton" TargetType="x:Type Button">
            <Setter Property="SnapsToDevicePixels" Value="True"/>
               <Border Name="Border" BorderThickness="0" BorderBrush="White" Background="#FF7AB800" Height="24" Margin="0,0,0.2,0" />
                <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"  />
               </Border>
                     <ControlTemplate TargetType="x:Type Button">
      

      【讨论】:

        猜你喜欢
        • 2011-03-03
        • 1970-01-01
        • 2021-05-30
        • 2018-02-07
        • 2017-12-30
        • 1970-01-01
        • 2019-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多