WPF和MVVMLight - 单击另一个按钮时打开按钮的工具提示

时间:2015-06-11 13:13:45

标签: wpf xaml mvvm-light

我想在单击另一个按钮但是工具提示在窗口左上方打开时打开按钮的工具提示。当我将鼠标移到第一个按钮上时,它工作正常,工具提示显示在第一个按钮附近,但是当我单击第二个按钮时,工具提示显示在窗口的左上方,而不是显示在第一个按钮附近。如何将工具提示放在第一个按钮附近?

提前致谢。

这是xaml部分:

    <s:SurfaceToggleButton x:Name="XMenu" IsChecked="{Binding XMenuIsChecked}">
        <s:SurfaceToggleButton.ToolTip>
            <ToolTip IsOpen="{Binding IsTooltipOpen}" DataContext="{Binding Path=PlacementTarget.DataContext, RelativeSource={x:Static RelativeSource.Self}}">
                <TextBlock Text="{x:Static p:Language.Label_Tooltip_XMenu}"/>
             </ToolTip>
         </s:SurfaceToggleButton.ToolTip>
         <i:Interaction.Triggers>
             <i:EventTrigger EventName="Click">
                 <Custom:EventToCommand Command="{Binding XMenuOpen}" PassEventArgsToCommand="True" />
             </i:EventTrigger>
         </i:Interaction.Triggers>
    </s:SurfaceToggleButton>
    <s:SurfaceButton>
         <i:Interaction.Triggers>
            <i:EventTrigger EventName="Click">
                <Custom:EventToCommand Command="{Binding OpenTooltips}" PassEventArgsToCommand="True" />
            </i:EventTrigger>
         </i:Interaction.Triggers>
    </s:SurfaceButton>

以下是视图模型类中的代码,MVVM部分:

private RelayCommand _OpenTooltips;

public RelayCommand OpenTooltips
{
    get
    {
       return _OpenTooltips
           ?? (_OpenTooltips = new RelayCommand(
           () =>
           {
              IsTooltipOpen = true;
           }));
    }
}

其中Custom定义为mvvmlight

xmlns:Custom="http://www.galasoft.ch/mvvmlight" 

并且工具提示样式定义为:

   <Style TargetType="ToolTip">
        <Setter Property = "HorizontalOffset" Value="0"/>
        <Setter Property = "VerticalOffset" Value="10"/>
        <Setter Property = "Placement" Value="Right"/>
        <Setter Property = "HasDropShadow" Value="false"/>
    </Style>

0 个答案:

没有答案