【问题标题】:App scaling issues in Visual Studio 2015Visual Studio 2015 中的应用缩放问题
【发布时间】:2015-08-26 10:54:04
【问题描述】:

我是 Visual Studio 的新手,但我想创建一个相当简单的应用程序供我自己在桌面上使用。我非常擅长 python 和 VBA,所以我确实有一些编码经验。虽然适应新语言令人困惑,但我认为我可以做到,这不是本文的目的。我看了看,似乎无法得到这个问题的明确答案。

基本上,我想知道如何使我在设计视图中看到的内容与我使用本地机器选项运行应用程序时看到的内容完全相同。创建项目时,我选择了 C#>Windows>Windows 8>Windows,然后选择了 windows 8.1 的空白应用程序,因为这就是我目前正在运行的。我的问题是我的显示器是 1920x1080。当我使用 xaml 代码和设计视口在 MainPage.xaml 上设计某些东西时,我想出了如何使东西看起来不错。但是,当我使用程序顶部的“本地机器”选项单击运行应用程序时,事情变得很奇怪。

应用程序可以正常打开;背景和个别元素都很好。然而,一切的对齐都是关闭的。我可以进行一些调整以使事情看起来更好,但我总是遇到同样的问题,即设计视图中的任何内容在应用程序启动时并不完全正确。

我已将问题缩小到“设备”菜单,在“显示”下拉菜单下,我可以选择很多分辨率来更改设计视图。然而,唯一的 1920x1080 分辨率是 140% 缩放,这无济于事。有什么方法可以让我实现 100% 缩放,或者我还没有想到的其他方法?

我说的是这张图片:

请注意,当应用程序运行时,右侧的矩形是如何剧烈移动的。所有单独的组件都是适量的像素等,但背景网格在尝试缩放时会搞砸。我非常希望在我启动它时能够准确地呈现设计视图中的内容。

感谢您提供的所有帮助。这个编辑器真的很混乱。

【问题讨论】:

  • 好吧,不。实际上 XAML 和 WPF 渲染引擎做得很好。你告诉你的网格一些特定的宽度和高度属性(列和行定义)并且它坚持它们。问题是:你想达到什么目标?如果您发布相应的 XAML,它可能会很有帮助。

标签: xaml windows-8.1 visual-studio-2015


【解决方案1】:

发生了什么,您在所有列宽之后的* 字符代表加权平均值(不是以像素为单位的宽度!!!)。由于中心柱的重量最大,因此效果在那里最为明显。如果您不想重新访问您的布局方法,您可以执行以下操作:从网格列宽中删除 *,并用 Viewbox 包裹整个网格并硬编码网格的宽度:

<Viewbox>
    <Grid x:Name="backGrid" Width="364">
    ....
    </Grid>
</Viewbox>

视图框的作用是为客户端控件(网格)提供无限空间,然后检查它使用了多少空间(在我的示例中为 364)。然后它将按比例放大网格以适应可用空间(同时保持纵横比)。

说了这么多,仍然应该注意的是,这是一种不鼓励的布局方式。也许使用 Canvas 或 DockPanel 来代替网格来进行布局。或者,您甚至可以确保中心列中的任何控件都设置为 Horizo​​ntalAlignment="Stretch",以便填充中心列中的可用空间。

如果您想要一些开始设计 WPF 布局的提示,请在 cmets 中告诉我,我可以发送我的 Skype 名称或其他内容。

【讨论】:

  • 感谢您撰写本文。我实际上能够弄清楚。我想我应该删除问题或将其标记为已解决...所以我想您可以获得已解决的标签,享受!
猜你喜欢
  • 2017-01-27
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
相关资源
最近更新 更多