如何设置分配给ListView.ItemTemplate中定义的所有控件的ToolTip和ContextMenu

时间:2016-12-27 09:47:39

标签: c# wpf tooltip

我使用自己的ItemTemplate定义

<ListView.ItemTemplate>
    <DataTemplate>
        <StackPanel>
        ...
        </StackPanel>
    </DataTemplate>
</ListView.ItemTemplate>

堆栈面板有几个控件。目的是在用户右键单击堆栈面板的任何控件时弹出相同的ContextMenu,并在鼠标悬停在控件上时显示相同的工具提示。

是否有可能在一个地方进行工具提示/上下文菜单分配,而不是为每个控件单独执行此操作?

1 个答案:

答案 0 :(得分:2)

  

是否有可能在一个地方进行工具提示/上下文菜单分配,而不是为每个控件单独执行此操作?

设置StackPanel的ContextMenu / Tooltip属性,其值将由子控件继承,即当您右键单击或悬停在任何StackPanel的子项上时,您将看到相同的ContextMenu / Tooltip控制:

<ListView x:Name="lv">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <StackPanel.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="..." />
                    </ContextMenu>
                </StackPanel.ContextMenu>
                <StackPanel.ToolTip>
                    <ToolTip>
                        <TextBlock>Tooltip...</TextBlock>
                    </ToolTip>
                </StackPanel.ToolTip>
                <Button Content="Button"/>
                <TextBlock Text="..." />
                <ComboBox>
                    <ComboBoxItem>1</ComboBoxItem>
                    <ComboBoxItem>2</ComboBoxItem>
                    <ComboBoxItem>3</ComboBoxItem>
                </ComboBox>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>