WPF 创建交互式工具提示

问题描述 投票:0回答:0

我面临着自定义 WPF 工具提示的挑战。我们有要求,当用户将鼠标从元素或工具提示上移开时,工具提示将消失。但是,如果鼠标悬停在元素或工具提示上方,则用户将看到工具提示。任何人都可以帮助我实现这个要求。请参阅以下示例代码

我已经尝试过了。

<Button x:Name="MinimizeButton" Style="{StaticResource MinimizeButtonStyle}" WindowChrome.IsHitTestVisibleInChrome="True"
                            Command="{x:Static SystemCommands.MinimizeWindowCommand}" MouseEnter="bttnTarget_MouseEnter" MouseLeave="bttnTarget_MouseLeave">
                        <!--<Button.ToolTip>
                            <ToolTip >
                                <TextBlock Text="{x:Static lang:Resources.Tooltip_Minimize}"></TextBlock>
                            </ToolTip>
                        </Button.ToolTip>-->
                    </Button>
                    <Popup MouseLeave="Popup_MouseLeave" PopupAnimation="Fade" Placement="Top" PlacementTarget="{Binding ElementName=MinimizeButton}" AllowsTransparency="True" StaysOpen="True" x:Name="minimizeTooltip">
                        <Border Background="White" Padding="5" BorderBrush="Black" BorderThickness="1">
                            <Grid>
                                <StackPanel>
                                    <TextBlock Margin="5" Text="{x:Static lang:Resources.Tooltip_Minimize}"></TextBlock>
                                </StackPanel>
                            </Grid>
                        </Border>
                    </Popup>
        private void bttnTarget_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
        {
            if (!minimizeTooltip.IsMouseOver)
                minimizeTooltip.IsOpen = false;
        }
        private void Popup_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
        {
            if (!MinimizeButton.IsMouseOver)
                minimizeTooltip.IsOpen = false;
        }
        private void bttnTarget_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
        {
            minimizeTooltip.IsOpen = true;
        }
c# wpf wpf-controls
© www.soinside.com 2019 - 2024. All rights reserved.