在以下XAML代码中,按钮文本缺少一半。我可以更改Margin
属性,很明显,在250px之后内容被隐藏了。为什么会这样,我该如何解决?
<Window x:Class="InnerInterface.InventoryManagement" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="someWindow" Height="500" Width="500">
<DockPanel HorizontalAlignment="Left" Name="dockPanel1" VerticalAlignment="Top">
<Grid DockPanel.Dock="Top">
<Button Name="buttonReturnToMainMenu" Content="someButton" Margin="200,0" Width="125" />
</Grid>
</DockPanel>
</Window>
答案 0 :(得分:16)
水平边距为200,按钮宽度为125,这意味着正确显示控件所需的总宽度约为525.
您HorizontalAlignment=Left"
上也有DockPanel
,这意味着它会以所需的宽度绘制内容,并将其与屏幕左侧对齐,而不是拉伸它以填充所有可用空间。这意味着它会阻挡控件两侧的200空间,并在剩余空间中绘制按钮。如果剩余空间小于125,则会裁剪图像。
如果切换到HorizontalAlignment="Stretch"
,它将首先绘制控件(带边距),然后拉伸它的大小以使其适合所有可用空间,这样整个控件都会调整大小而不是裁剪。
您可能有兴趣阅读WPF中的this MSDN article on Alignment, Margins, and Padding。
修改强>
如果您希望仅 Left
页边距为200,请使用Margin="200,0,0,0"
。使用Margin="200,0"
表示左边距和右边距都是200。
答案 1 :(得分:1)
不确定您的确切问题,但也许这应该会有所帮助:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="500" Width="500">
<DockPanel HorizontalAlignment="Stretch" Name="dockPanel1" VerticalAlignment="Top">
<Grid DockPanel.Dock="Top" >
<Button Name="buttonReturnToMainMenu" Content="someButton" Width="125" />
</Grid>
</DockPanel>
</Window>
答案 2 :(得分:1)
问题是按钮Margin
设置为:
Margin="200,0"
应设为:
Margin="200,0,0,0"
这消除了右侧边距并允许整个按钮显示。