如何在C#4.0的任何屏幕分辨率下有效地运行或调整Windows应用程序?
我已经用1600 x 1200分辨率完成了它,但如果我尝试使用较低分辨率,则只能看到部分表格。
如何解决这个问题?我经常搜索并了解Anchor& Dock将是有用的,但也知道这些应该从设计开始使用,但我已经完成了我的应用程序,而这个解决方案现在导致问题,当我在任何系统中安装应用程序
答案 0 :(得分:2)
确保您的控件保持可见的快速而肮脏的方法是在表单上放置Panel
,设置Dock = Fill
和AutoScroll = True
,然后将所有其他控件放在表单中在里面。你的控件不会被切断,但你的程序不会因为美学而赢得任何奖项。如果该计划是全新的,那就不是你想要开始的方式了。
如您所述,您可以重新设计它以使用Anchors和Docking。您还可以在Button
中放置一行TextBox
控件或一系列FlowLayoutPanel
控件等项目,这些项目将在您调整表单大小时重新定位它们。
但是,如果调整屏幕分辨率对您来说很重要,那么最好从一开始就使用WPF
。根据容器控制,控件会根据需要自动调整大小并重新定位。
答案 1 :(得分:1)
真正的问题应该是:
答案是你需要指定锚点。锚点用于告诉您的控件如何对调整大小做出反应,以及应该关注的是什么。
假设您有一个包含两个[Cancel]
和[OK]
按钮的表单。通常认为它们适合窗户的右下角。但默认Anchor
属性设置为Top, Left
,因此在您的表单调整大小时,它们会根据默认设置粘贴到它们所属的Top, Left
角落。如果您最大化您的表单,这将不会有任何麻烦,因此您可能会在屏幕中间显示您的按钮。但至少,你会充分看到每一项控制。
但是如果调整你的形状越小越小呢?你还希望他们坚持Top, Left
,或者Bottom, Right
会更有用吗?我的猜测是你应该将Anchor
属性设置为Bottom, Right
,对于那两个属性。
根据您希望控件对表单大小调整的反应,这可能会派上用场Anchor
设置不同的TextBox
。让我们将三个Description
控件相互水平对齐。也许您的较长字段将是位于表单水平中心的对象DescriptionTextBox
属性。然后,当你升级时,你必须考虑在调整大小时更有意义。如果要在调整大小时使其更长,以便用你所有的控制来填充你的表单宽度,那么也许你希望Anchor
变宽和变宽,并且反对也应该是真的,在表单调整大小时,你可能希望这个字段的大小也要小一些。然后,为了实现这一点,您必须将Left, Right
属性设置为DescriptionTextBox
,以便MinimumSize
控件的边缘随时保持与表单边缘相同的距离
在调整到较小窗口的情况下另一件事是关注的,是MinimumSize
属性。人们应该同意使用尺寸为34x34像素的形式。因此,将您的Anchor
属性设置为特定大小,使表单存在感觉,您将避免显示控件的显示故障。
有关MinimumSize
媒体资源的详细信息:Control.Anchor Property
有关{{1}}媒体资源的详细信息:Control.MinimumSize Property