使用窗口缩放工具提示

本文关键字:工具提示 缩放 窗口 | 更新日期: 2023-09-27 18:22:21

我得到了一些WPF应用程序。我将内容放在viewbox中,它运行良好,但tooltip无法与其他内容进行缩放。我理解为什么,但我不知道如何缩放它。我应该将窗口中的实际大小绑定到工具提示中的某个大小吗?或者工具提示缩放有一些常见的做法?谢谢

使用窗口缩放工具提示

我认为您必须自己按ScaleTransform缩放工具提示的内容。请注意,您必须设置LayoutTransform(而不是RenderTransform),以便工具提示调整自身大小以适应其内容。问题是如何知道要应用于工具提示内容的缩放因子?幸运的是,我们可以很容易地从Viewbox中得到这个因子。以下是Viewbox中Button的XAML代码示例:

<Viewbox Name="vb">
   <Grid>          
      <Button>
          <Button.ToolTip>
             <Border Name="toolTipContent">                    
                <TextBlock>Some instruction...</TextBlock>
             </Border>
          </Button.ToolTip>
          Open
      </Button>          
    </Grid>
</Viewbox>

调整窗口大小时,您应该重新缩放工具提示,因此我们应该处理事件SizeChanged:

ContainerVisual cv;
private void sizeChanged_handler(object sender, SizeChangedEventArgs e){
   if(cv == null) {            
        cv = VisualTreeHelper.GetChild(vb, 0) as ContainerVisual;
   }
   //cv.Transform is in fact a ScaleTransform
   toolTipContent.LayoutTransform = cv.Transform;
}