Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
C# WPF Dockpanel按钮缩放_C#_Wpf - Fatal编程技术网

C# WPF Dockpanel按钮缩放

C# WPF Dockpanel按钮缩放,c#,wpf,C#,Wpf,在我的XAMl示例中,只有“Test2”按钮正确地缩放到窗口大小。“Test1”不受调整大小控件的影响。为什么我会得到那个结果?我如何才能使“Test1”与窗口大小适当地缩放?我得到了这个XAML代码: <Window x:Class="testg.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.co

在我的XAMl示例中,只有“Test2”按钮正确地缩放到窗口大小。“Test1”不受调整大小控件的影响。为什么我会得到那个结果?我如何才能使“Test1”与窗口大小适当地缩放?我得到了这个XAML代码:

<Window x:Class="testg.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:testg"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="auto"></RowDefinition>
        <RowDefinition Height="2*"></RowDefinition>
    </Grid.RowDefinitions>

    <DockPanel Background="Gainsboro">
        <Button Height="auto" Width="auto" HorizontalAlignment="Stretch">Test1</Button>
        <Button Height="auto" Width="auto" HorizontalAlignment="Stretch">Test2</Button>
    </DockPanel>
</Grid>

测试1
测试2

你的布局没有多大意义。不清楚您为什么添加了
DockPanel

去掉
DockPanel
,并将要缩放的每个
按钮
放在
网格
的单元格中,该单元格可拉伸:

<Grid Background="Gainsboro">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"></ColumnDefinition>
        <ColumnDefinition Width="auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>

    <Grid.RowDefinitions>
        <RowDefinition Height="auto"></RowDefinition>
        <RowDefinition Height="2*"></RowDefinition>
    </Grid.RowDefinitions>

    <Button>Test1</Button>
    <Button Grid.Column="2">Test2</Button>
</Grid>

测试1
测试2

顺便说一下,将
按钮的
宽度
高度
属性设置为
自动
并将
水平对齐
设置为Stretcch是毫无意义的。这些是默认值。

您正在否定按钮中的样式。如果希望宽度自动(尽可能小),则不要添加HorizontalAlignment=Stretch(尽可能大)。这种奇怪的行为可能是因为DockPanel具有LastChildFill属性。