wpf:按钮,文本框,被切断

时间:2013-08-06 17:40:52

标签: wpf xaml

我真的很困惑为什么我的一些文本框和按钮被切断了,有人可以帮我解决这个问题吗?谢谢!!

XAML CODE

<Grid>
        <TabControl>
            <TabItem Name="tabHome">
                <TabItem.Header>
                    <Label Content="Home" MouseLeftButtonDown="tabHome_Click"/>
                </TabItem.Header>
                <Grid>
                    <Button Content="Parse" Height="23" x:Name="btn_parse" Width="75" Click="buttonParse_Click" Margin="180,10,180,176"/>
                    <TextBox IsReadOnly="True"  x:Name="txtbox_filepath" Height="25" Width="135" Margin="151,52,150,132" />
                    <Button Content="Reset" Height="23" x:Name="btn_reset" Width="75" Margin="180,122,180,64" Click="buttonReset_Click"/>
                </Grid>
            </TabItem>
            <TabItem Name="tabConfig">
                <TabItem.Header>
                <Label Content="Configuration" MouseLeftButtonDown="tabConfig_Click"/>
                </TabItem.Header>
                <ScrollViewer>
                    <StackPanel Name="panelConfig">
                    </StackPanel>
                </ScrollViewer>
            </TabItem>
<Grid>

截图

screenshot

正如您所见,按钮和文本框在角落处被切断。
感谢您的帮助,我很感激。

4 个答案:

答案 0 :(得分:12)

当你给出像这个Margin="180,10,180,176"这样的Margin值时,这意味着必须将控件放置在距离左边180度,从顶部倾斜10度,从右边倾斜180度,从底部调整176度,参考父控件。由于高保证金值,您的控件被裁剪。

enter image description here

注意:dip - 设备独立像素。

最好为RowDefinitions创建Grid,并将控件放在具有合理边距值的单独行中,如下所示。

<Grid>
    <TabControl>
        <TabItem Name="tabHome">
            <TabItem.Header>
                <Label Content="Home"/>
            </TabItem.Header>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <Button Grid.Row="0" Content="Parse" Height="23" x:Name="btn_parse" Width="75" Margin="10" />
                <TextBox Grid.Row="1" IsReadOnly="True"  x:Name="txtbox_filepath" Height="25" Width="135" Margin="10" />
                <Button Grid.Row="2" Content="Reset" Height="23" x:Name="btn_reset" Width="75" Margin="10"/>
            </Grid>
        </TabItem>
        <TabItem Name="tabConfig">
            <TabItem.Header>
                <Label Content="Configuration"/>
            </TabItem.Header>
            <ScrollViewer>
                <StackPanel Name="panelConfig">
                </StackPanel>
            </ScrollViewer>
        </TabItem>
    </TabControl>
</Grid>

答案 1 :(得分:3)

您明确为按钮设置了HeightWidth,但您使用的值太小。

如果您将其关闭,则按钮应正确显示:

<Button Content="Parse" x:Name="btn_parse" Click="buttonParse_Click" Margin="180,10,180,176"/>
<Button Content="Reset" x:Name="btn_reset" Margin="180,122,180,64" Click="buttonReset_Click"/>

请注意,如果您使用Grid或其他容器而不是使用Margin自行设计,则可以更好地完成布局。

答案 2 :(得分:1)

删除HeightWidthMargin属性。

不要使用Visual Studio设计器来创建WPF UI。

查看http://wpftutorial.net/LayoutProperties.html

答案 3 :(得分:0)

您已经使用了height,Width属性和Margin属性。删除height和width属性,它将正常工作。例如。

<Button Content="Parse" x:Name="btn_parse" Click="buttonParse_Click" Margin="180,10,180,176"/>