gpt4 book ai didi

c# - WPF 应用程序从监视器到监视器的更改

转载 作者:太空宇宙 更新时间:2023-11-03 23:22:25 25 4
gpt4 key购买 nike

我正在编写一个 WPF 应用程序作为工业自动化的 GUI。当在屏幕分辨率为 1920x1080 的开发机器上运行时,它看起来是某种方式,但是当我在 1024x768 的目标机器上运行它时,它会发生变化。大多数情况下一切都会增长。我认为基于 Vector 的想法是东西应该保持相同的大小。我通过将显示器直接插入我的开发机器(它是触摸屏显示器)排除了计算机(主题设置等)。所以它要么是我在我的应用程序中做错了什么,要么是监视器本身

有什么想法吗??

编辑 xaml 示例

<Controls:MetroWindow x:Class="Trax_HMI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="MainWindow" Height="768" Width="1024" WindowStyle="None" WindowState="Maximized" UseNoneWindowStyle="True" ShowTitleBar="False">
<Grid >

<Image HorizontalAlignment="Left" Height="559" Margin="10,10,-30,-42" VerticalAlignment="Top" Width="780" Source="Cell Layout.png"/>

<Button Content="Log Off" HorizontalAlignment="Left" Height="44" Margin="542,10,0,0" VerticalAlignment="Top" Width="132" Click="Button_Click"/>
<Button Content="Close" HorizontalAlignment="Left" Height="39" Margin="542,59,0,0" VerticalAlignment="Top" Width="132" Click="Button_Click_1"/>
<Label x:Name="OPCState" HorizontalAlignment="Left" Height="27" Margin="10,10,0,0" VerticalAlignment="Top" Width="217"/>
<Button Content="Reset" HorizontalAlignment="Left" Height="38" Margin="918,720,0,0" VerticalAlignment="Top" Width="96"/>
</Grid>
</Controls:MetroWindow>

最佳答案

如果你尝试下面的实验会发生什么?

  1. 在将主窗口大小设置为 1920 x 1080 的情况下运行您的应用。
  2. 在将主窗口大小设置为 1024 x 576 的情况下运行您的应用。

当您以较小的窗口尺寸运行时,您的矢量图形看起来几乎相同,只是变小了,还是它们看起来仍然不同?

如果它们看起来几乎相同,只是更小,这意味着您的图形设置为拉伸(stretch)并填充它们的父容器。使用 1920 x 1080 显示器时,纵横比为 1920 / 1080 = 1.78 .使用 1024 x 768 显示器时,纵横比为 1024 / 768 = 1.33 . (请注意,1024 x 576 的纵横比与 1920 x 1080 的纵横比相同。)由于较小的显示器具有较高的纵横比,因此拉伸(stretch)以填充容器的图形会显得更高。

在没有看到 XAML 的情况下,很难准确诊断导致意外拉伸(stretch)的原因,但由于您提到了矢量图形,我假设您使用的是 Path 等控件。 , Ellipse , 和 Rectangle .这些控件中的每一个都有一个 Stretch属性(property)。我建议您阅读 Stretchdocumentation .我猜你应该设置 StretchUniform而不是 Fill ,但您必须进行实验才能确定最有效的方法。

如果您仍然需要帮助,请发布一些显示您的 XAML 标记的示例。

关于c# - WPF 应用程序从监视器到监视器的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34952724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com