首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF LayoutTransform: ToolTip大小未修改

WPF LayoutTransform: ToolTip大小未修改
EN

Stack Overflow用户
提问于 2016-06-23 20:53:51
回答 2查看 509关注 0票数 2

我在窗口‘顶层’网格‘控件中使用LayoutTransform来执行ScaleTransform并在UI上实现缩放因子(类似于浏览器的操作)。

事情运行良好,但不知怎的工具提示显示与未经调整的大小。

例如,如果有一种方法可以枚举窗口中的所有toolTips并从.cs文件调整它们的大小?...or还有其他方法来处理这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-23 21:58:09

工具提示不受影响的原因是因为工具提示不是窗口视觉树的一部分。因此,在窗口组件集中执行的任何布局转换都不会传递到工具提示。如果您有大多数通用工具提示(基本上是文本),您可以在窗口资源中创建一个无键样式,WPF将自动将其应用于所有工具提示:

代码语言:javascript
复制
   <Window.Resources>
        <Style TargetType="ToolTip">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ToolTip}">
                        <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                            <Border.LayoutTransform>
                                <ScaleTransform ScaleX="{Binding ScaleFactor}"></ScaleTransform>
                            </Border.LayoutTransform>
                            <ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <StackPanel x:Name="MainPanel">
        <StackPanel.LayoutTransform>
            <ScaleTransform ScaleX="{Binding ScaleFactor}" ScaleY="{Binding ScaleFactor}"></ScaleTransform>
        </StackPanel.LayoutTransform>
        <TextBlock ToolTip="blah">haha!</TextBlock>
    </StackPanel>

在本例中,我使用ScaleX/Y表示工具提示绑定到窗口视图模型上的ScaleFactor属性。我相信你可以这样保持它的动感。

票数 2
EN

Stack Overflow用户

发布于 2016-06-24 01:28:44

就像Rowbear提到的,工具提示是弹出窗口(它们是窗口),所以它们有自己的可视树。但是,据我所知,最大的问题是,这些弹出窗口也不能继承来自产卵控制的DataContext。

代码语言:javascript
复制
<Window.Resources>
    <Style TargetType="ToolTip">
        <Setter Property="LayoutTransform" Value="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.LayoutTransform}" />
    </Style>
</Window.Resources>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38001665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档