【问题标题】:Why WPF XAML front end looks diffrent on other machines?为什么 WPF XAML 前端在其他机器上看起来不同?
【发布时间】:2021-01-02 10:44:42
【问题描述】:

我写了一个 WPF C# 应用程序,前端的每个元素都调整了边距,例如:

<TabItem x:Name="ClipboardItem" FontSize="15" FontFamily="Century Gothic"  Height="60" Header="     
 Multi Clipboard" Background="#2a2a29" Foreground="#e7e8ea" Margin="-4,-7,-57,8">

在我的电脑上,一切看起来都很好,正是我想要的。奇怪的是其他电脑。例如,在其他 PC2 元素上,我们称它为 A 看起来不同并且超出,但在其他 PC3 元素上,A 看起来与我的 PC 上的完全一样,但其他元素 B 看起来完全不同。就这一点而言,在其他 PC 上,某些元素就像它们应有的样子,但有些元素却不是。它是严格设置高度和长度的窗口应用程序。你能告诉我如何解决这个问题吗?

【问题讨论】:

  • 在 WPF 中使用边距定位项目绝不是一个好主意。尝试使用网格控件或其他布局面板。
  • 您使用的字体系列不在标准 Windows 字体列表 Windows 10 font list 上。如果Century Gothic 不在另一台PC 上,windows 将替换为另一种字体,并且该字体的度量将导致布局发生变化,因为字的宽度(以像素为单位)将根据字体系列发生变化。这就是@Peregrine 评论最佳课程的原因。

标签: c# .net wpf xaml visual-studio-2019


【解决方案1】:

首先。计算机可以有许多不同的分辨率和纵横比。所以如果你想把它们都装进去。使用 GridView 或 ViewBox (还有更多,但这些对初学者有好处)。并且不建议对大多数元素使用边距,除非它很小并且在角落,然后再次不要使用它。

使用合适的东西代替 Horizo​​ntalAlignment="Stretch"

<GridView HorizontalAlignment="Stretch" > 
   <TabItem x:Name="ClipboardItem" FontSize="15" FontFamily="Century Gothic"  
   Height="60" Header=" Multi Clipboard" Background="#2a2a29" 
   Foreground="#e7e8ea">
</GridView>

在尝试此代码之前了解网格视图https://docs.microsoft.com/en-us/dotnet/desktop/wpf/controls/gridview-overview?view=netframeworkdesktop-4.8

如果你想保持纵横比使用 View Box: https://stackoverflow.com/a/290229/10518289

要记住的另一件事是,您测试的所有计算机都必须运行相同版本的 .Net Framwork 或最新版本。

【讨论】:

    猜你喜欢
    • 2013-08-12
    • 2023-02-05
    • 1970-01-01
    • 2013-05-14
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多