Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 为什么这个按钮被切断了?_Wpf_Xaml - Fatal编程技术网

Wpf 为什么这个按钮被切断了?

Wpf 为什么这个按钮被切断了?,wpf,xaml,Wpf,Xaml,在下面的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

在下面的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>

不确定您的确切问题,但这可能会有所帮助:

<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>

您的水平边距为200,按钮宽度为125,这意味着正确显示控件所需的总宽度约为525

您还有
HorizontalAlignment=Left“
在您的
DockPanel
上,这意味着它将以所需的宽度绘制内容,并将其与屏幕左侧对齐,而不是拉伸以填充所有可用空间。这意味着它将在控件的两侧留出200的空间,并在剩余空间中绘制按钮。如果剩余空间小于125,图像将被裁剪

如果切换到
HorizontalAlignment=“Stretch”
,则它将首先绘制控件(带边距),然后拉伸其大小,使其适合所有可用空间,从而调整整个控件的大小,而不是裁剪

你可能对阅读WPF感兴趣

编辑


如果只希望
左侧的
边距设置为200,则使用
margin=“200,0,0,0”
。使用
Margin=“200,0”
意味着左侧和右侧的边距都是200。

问题在于按钮
边距设置为:

Margin="200,0"
应将其设置为:

Margin="200,0,0,0"

这消除了右侧的空白,并允许显示整个按钮。

谢谢。甚至将
HorizontalAlignment=“Left”
添加到按钮也没有帮助。事实上,这已经存在于我的工作代码中,但我将其从SO问题中删除,以将其简化为最简单的情况。我也可以用
边距
将按钮一直向左移动,整个按钮都会显示出来。此外,同一位置的其他(更宽的)控件(文本框)确实显示了它们的整个宽度。@dotancohen重新阅读了第3段:如果在
DockPanel
上切换到
horizontalAlignment=“Stretch”
,则它将首先绘制控件并水平调整其大小以适应可用空间,而不是裁剪它。谢谢,瑞秋。我确实尝试将
horizontalalignment=“Stretch”
添加到
DockPanel
,不幸的是,这不是问题所在,也没有解决问题。原来问题是两边都设置了
Margin
属性,将其向左更改只能解决问题,正如您在编辑中提到的那样。我非常感谢你的帮助和跟进!谢谢,但我确实需要将按钮移动到200像素以上。@dotancohen-你说你需要将按钮移动到200像素以上,但你也打算在右边加200页边距吗?或者你应该使用
“200,0,0,0”
作为你的页边空白?马克,看起来你和我一起发布了答案,几分钟后Rachel得出了相同的结论。请将您的评论作为答案发布,以便我能够接受,因为您是第一个提到它的海报。谢谢@Rachel-Rachel在她的文章中提到了这个概念,其中包含了比我想写的更多的细节,包括为什么利润率是错误的,以及它们是如何计算的。我投票支持她的回答。事实上你只差几分钟