0

最近,我在处理自定义WPF表单时偶然发现了一个问题。(无论如何,它们不都是定制的吗?)。我将以下属性添加到 XAML。

AllowsTransparency="True"
ResizeMode="NoResize"
Height="945"
Width="1621" 
WindowStyle="None"

以及上面列出的大小的自定义背景图像:

<Window.Background>
    <ImageBrush ImageSource="Images/form_bg.png" />
</Window.Background>

运行它之后,我添加的一些按钮就消失了。直到我超大按钮(大约300高度和宽度)之后,它们才开始出现。

我花了一点时间试图弄清楚发生了什么.... Windows 正在调整我的表单大小,因为它不适合我的15“笔记本电脑!只是1366 x 768,我的 Windows8.1只是调整了表单的大小,将其缩小到,我想,70%它的原始大小。由于我的控件使用边距,并且XAML代码保持不变,但实际表单大小减小了,我的控件只是折叠了。

现在显而易见的解决方案是缩小图像,也许将其裁剪一点。让我们把1280x1024它作为一个共同的解决方案并使其适合。但是,如果有人使用1024x768监视器运行它并搞砸了怎么办?

我设法通过添加MinWidthMinHeight属性并将它们设置为与 Width 和 Height 相同的值来修复 Windows 的大小调整,但是在移动表单后,一些底部内容会从屏幕上消失。

所以,我正在寻找的是处理这个问题的正确方法。一个体面的用户友好的解决方案。如果我可以让我的控件一起调整大小,那么用户可能无法在小屏幕上阅读某些内容。

或者,也许我可以使用 C# 将注意力集中在窗口的一部分上,而不管它的位置如何?只要那部分不掉屏就是了。

非常感谢任何提示、提示和示例!

4

1 回答 1

0

如果我理解您的问题,是否能够设计一个无论分辨率如何都可以缩放的布局?

我所做的一件事是在使用“星”单元布局(基本上基于百分比)的窗口上布局网格,并在这些网格中,将我的用户控件放入 Viewbox。这允许我在网格内设置垂直和/或水平拉伸。控件将在视图框内、网格布局内自动缩放。这样,无论显示器的分辨率或比例如何,布局和控件都会相应地进行调整。

如果您需要在控件周围设置静态边距。这些规则将适用。如果您需要为比例创建某种类型的限制,您可能需要创建一个依赖属性来计算所需的控件大小并将它们的宽度和高度绑定到您的结果。

于 2014-01-11T23:15:49.743 回答