我正在做我的第一个WPF应用程序。我有问题,当我的表格最大化或全屏时,我的控件不会调整大小,只是停留在相同的位置。只有表格最大化。
在winform中,我可以在.cs中进行调整,如下所示:
panel6.Width
panel6.Height
panel6.Location
如果我的表格最大化,这将帮助我设置它。我通过使用一些算术来做到这一点,我获得屏幕的分辨率和一些计算并获得值,并可以将其设置为宽度,高度和位置。
但这是在WINFORM中。
如何在WPF中最大化和全屏解决此问题?有没有办法通过.cs文件以编程方式完成?或者WPF是否有一个简单的内置控件来解决这个问题?
假设这个例子我在WPF中使用了dockpanel。
如果窗口最大化但其他控件仍然存在,那将毫无意义。任何想法?
答案 0 :(得分:24)
设置宽度和高度:
dockpanel1.width = 230;
dockpanel1.height = 230;
就位置而言,wpf
使用保证金:
dockpanel1.Margin = new Thickness(0,440,836,40);
答案 1 :(得分:12)
可以通过编程方式在Canvas上移动子元素。
在xaml:
<Canvas>
<YourElement Canvas.Top="x" Canvas.Left="y"/>
</Canvas>
在C#中:
Canvas.SetTop(YourElement, newX);
Canvas.SetLeft(YourElement, newY);
答案 2 :(得分:2)
使用一些计算,例如(控制以前的位置*布局&#39;新尺寸)/布局以前的尺寸=控制的新位置
但最简单的方法是使用XAML 使用Grid并在其中放置列和行,并将列和行的大小设置为* 因此,在布局大小更改时,您的控件将重新定位,以引用父级的大小变化,您的网格是其子级。 你甚至可以通过设置控件来自动调整大小的控件。列和行中的边距。不要忘记设定拉伸的水平和垂直对齐。
答案 3 :(得分:1)
针对您的具体问题,建议您使用DockPanel并将控件放入其中。这是第一个结果:WPF Tutorial | Dock Panel
正如flq和blindmeis已经建议的那样,请研究布局面板。这将使你的生活在WPF中变得更加简单。
答案 4 :(得分:0)
你应该看看wpf中所有不同的layoutpanel(Grid,DockPanel,StackPanel,Canvas ......)
因此,如果您为Panel设置了任何属性,则如果LayoutPanel更改,则其行为会有所不同。
答案 5 :(得分:0)
如果要显式定位子项,请使用“画布”面板
<Canvas>
<YourElement Canvas.Top="x" Canvas.Left="y"/>
</Canvas>