Visual Studio 2015中的应用程序扩展问题

时间:2015-07-15 00:21:14

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

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

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

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

我已将问题缩小到“设备”菜单,在“显示”下拉菜单中,我可以选择许多更改设计视图的分辨率。然而,唯一的1920x1080分辨率是140%缩放,这没有任何帮助。有没有什么方法可以让我做到100%缩放,或者我还没想到的另一种方式?

这张图片正是我所说的:

http://i.imgur.com/y0vIqRX.png

注意当应用程序运行时,右侧的矩形如何大幅移动。所有单独的组件都是适当数量的像素等,但背景网格在尝试缩放时会混淆。我想要在设计视图中的内容完全代表我去发布它时。

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

1 个答案:

答案 0 :(得分:0)

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

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

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

所有这些都说,还应该注意到这是一种不鼓励的布局方式。也许使用Canvas或DockPanel来进行布局而不是网格。或者甚至可以确保中心列中的任何控件都设置为Horizo​​ntalAlignment =&#34; Stretch&#34;这样它就会填满中间栏的可用空间。

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