[英]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.