Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf Can';触发时,无法显示下划线_Wpf_Xaml_Triggers_Underline_Text Decorations - Fatal编程技术网

Wpf Can';触发时,无法显示下划线

Wpf Can';触发时,无法显示下划线,wpf,xaml,triggers,underline,text-decorations,Wpf,Xaml,Triggers,Underline,Text Decorations,我有以下样式,但当鼠标悬停触发器为真时,文本上不会显示下划线 <Style x:Key="HyperlinkToggleButtonStyle" TargetType="ToggleButton"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ToggleButton">

我有以下样式,但当鼠标悬停触发器为真时,文本上不会显示下划线

<Style x:Key="HyperlinkToggleButtonStyle" TargetType="ToggleButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ToggleButton">
                <TextBlock x:Name="TextBlock">
                            <ContentPresenter Content="{TemplateBinding  Content}" ContentTemplate="{TemplateBinding  ContentTemplate}"/>
                </TextBlock>
            </ControlTemplate>
        </Setter.Value>
    </Setter>

    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="false">
            <Setter Property="Background" Value="{StaticResource StandardBackground}"/>
            <Setter Property="Foreground" Value="Black" />
            <Setter Property="FontSize" Value="12"/>
            <Setter Property="FontStyle" Value="Normal"/>
            <Setter Property="FontWeight" Value="Normal"/>                                         
        </Trigger>

        <Trigger Property="IsMouseOver" Value="true">
            <Setter Property="Background" Value="{StaticResource StandardBackground}"/>
            <Setter Property="Foreground" Value="{StaticResource StandardBlue}" />
            <Setter Property="Cursor" Value="Hand" />
            <Setter Property="FontSize" Value="12"/>
            <Setter Property="FontStyle" Value="Normal"/>
            <Setter Property="FontWeight" Value="Normal"/>
            <Setter Property="TextBlock.TextDecorations" Value="Underline"/>
        </Trigger>
    </Style.Triggers>
</Style>

这可能不是理想的解决方案,但您可以在控件模板中定义触发器。不要忘记使用setter上的
TargetName
属性引用TextBlock

    <Setter Property="Template">
        <Setter.Value>
           <ControlTemplate TargetType="ToggleButton">
              <TextBlock x:Name="TextBlock">
                        <ContentPresenter Content="{TemplateBinding  Content}" ContentTemplate="{TemplateBinding  ContentTemplate}"/>
              </TextBlock>
              <ControlTemplate.Triggers>
                 <Trigger Property="IsMouseOver" Value="true">
                    <Setter TargetName="TextBlock" Property="TextBlock.TextDecorations" Value="Underline"/>
                 </Trigger>
              </ControlTemplate.Triggers>
           </ControlTemplate>
        </Setter.Value>
     </Setter>

不会继承,因此在按钮上设置值(触发器的目标)将无法实现您想要的功能。您可能可以使用故事板来实现这一点,但我不记得故事板是否可以针对模板中定义的元素(唯一的方法是这样做)。

这肯定是一种更好的方法。