繁体   English   中英

使用 WPF 缩放

[英]Scaling with WPF

我已经在我们的窗口中实现了缩放,我们正在修改缩放变换,如下所示:

<Window.Resources>
    <ResourceDictionary>
        <ScaleTransform x:Key="windowScaleTransform" 
                        ScaleX="{Binding ScaleX, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" 
                        ScaleY="{Binding ScaleY, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
    </ResourceDictionary>
</Window.Resources>

我们正在使用 Caliburn Micro,这适用于我们的主窗口。

当我复制了相同的代码并确保实际的 ScaleX/Y 属性在其他窗口中得到更新时,这些窗口似乎没有监听缩放变换。 同样,这仅适用于新初始化的窗口,例如设置窗口。

在我们的 MainWindowViewModel 中,我们像这样初始化一个 AboutBox:

windowManager.ShowDialog(new AboutBoxViewModel(aboutBoxService), null, null);

但是 about 框,即使它有那个 window.resource 代码,似乎也不关心它。 我不确定此时我做错了什么......

可能会有所帮助,但由于某种原因,当我在Window.Resources部分中有上述代码时,其他窗口上没有发生缩放。

有效的是找到 Window/UserControl 的第一个元素,并像这样添加缩放。 就我而言,其中一个窗口的第一个元素是边框:

<Border BorderThickness="2" BorderBrush="{StaticResource ResourceKey=SeeColour}">
    <Border.LayoutTransform>
        <ScaleTransform ScaleX="{Binding Source={x:Static mediators:ScalingMediator.Instance}, Path = ScaleX}" 
                        ScaleY="{Binding Source={x:Static mediators:ScalingMediator.Instance}, Path = ScaleY}" />
    </Border.LayoutTransform>
... etc

希望这可以帮助其他人:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM