1

我在 c# 中有一个 wpf 程序,它有一个组合框,有各种颜色可供选择。它看起来像这样

? 文本

我正在制作一个可以更改另一个程序中某些文本的颜色的配置器。因此,如果用户打开程序并且他不喜欢描述文本的颜色,他可以打开配置器并更改颜色。当用户从组合框中选择一种颜色时,文本会改变颜色。当用户将鼠标悬停在 ? 出现一个图像,显示具有更改的文本颜色的程序图像。到目前为止,我可以让程序的图像出现,但我不能让任何文本出现在它上面。这就是我现在所拥有的:

        System.Windows.Controls.Image td = new System.Windows.Controls.Image();
        BitmapImage myBitmapImage = new BitmapImage();
        myBitmapImage.BeginInit();
        myBitmapImage.UriSource = new Uri(Directory.GetCurrentDirectory() + "/Homepage.jpg");
        myBitmapImage.DecodePixelWidth = 700;
        myBitmapImage.DecodePixelHeight = 590;
        myBitmapImage.EndInit();
        td.Source = myBitmapImage;

        ToolTipService.SetPlacement(image1, System.Windows.Controls.Primitives.PlacementMode.Left);
        ToolTipService.SetToolTip(image1, td);
        ToolTipService.SetShowDuration(image1, 999999999);

如何定位文本以显示在ToolTip图像顶部?

4

2 回答 2

2

ToolTipService 允许您将工具提示设置为任何内容。因此,将其设置为同时包含图像和文本的面板。下面的代码实现了这一点:

TextBlock textBlock = new TextBlock();
textBlock.Foreground = Brushes.White;
textBlock.HorizontalAlignment = HorizontalAlignment.Center;
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.Text = "Overlaying Image Text";

Grid toolTipPanel = new Grid();
toolTipPanel.Children.Add(td);
toolTipPanel.Children.Add(textBlock);

ToolTipService.SetToolTip(image1, toolTipPanel);
于 2009-07-22T18:49:46.387 回答
0

尝试查看装饰层。基本上,装饰层允许您在不影响下方控件布局的情况下显示项目。

于 2009-07-22T17:54:45.047 回答