小编srg*_*srg的帖子

堆栈面板中的wpf鼠标悬停边距

我有一个标签项,标题具有以下形式:image_margin_textblock.

当鼠标光标在图像上方时,以及在文本块上方,触发器IsMouseOver正常工作.但是,当鼠标光标位于Image和Textblock之间的边距上时,不会触发IsMouseOver触发器.这会产生恼人的闪烁效果.

您是否有任何想法如何实现鼠标悬停触发?

这是代码:

<TabItem.Header>
<ContentControl>
    <ContentControl.Template>
        <ControlTemplate>
            <StackPanel x:Name="sp0" Orientation="Horizontal">
                <StackPanel x:Name="sp1" Orientation="Horizontal" Background="Blue">
                    <Image VerticalAlignment="Center" HorizontalAlignment="Center" Source="tab1.png"/>
                </StackPanel>
                <TextBlock Margin="10,0,0,0" Text="Tab1" VerticalAlignment="Center"/>
            </StackPanel>
            <ControlTemplate.Triggers>
                <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" Value="True">
                    <Setter TargetName="sp1" Property="StackPanel.Background" Value="Green"/>
                </DataTrigger>
                <Trigger SourceName="sp0" Property="IsMouseOver" Value="True">
                    <Setter TargetName="sp1" Property="StackPanel.Background" Value="Green"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </ContentControl.Template>
</ContentControl>
Run Code Online (Sandbox Code Playgroud)

谢谢.

wpf margin ismouseover

2
推荐指数
2
解决办法
1225
查看次数

标签 统计

ismouseover ×1

margin ×1

wpf ×1