Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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堆叠面板布局问题_C#_Wpf_Visual Studio_Visual Studio 2008 - Fatal编程技术网

C# WPF堆叠面板布局问题

C# WPF堆叠面板布局问题,c#,wpf,visual-studio,visual-studio-2008,C#,Wpf,Visual Studio,Visual Studio 2008,我正在尝试创建类似于以下内容的布局: 以下是我的代码: <StackPanel TextBlock.FontFamily="Segoe UI" Orientation="Horizontal"> <StackPanel HorizontalAlignment="Stretch" Width="Auto"> <TextBlock Padding="5,0,5,0" FontSize="12" FontWeight="Bold" Text="{

我正在尝试创建类似于以下内容的布局:

以下是我的代码:

<StackPanel TextBlock.FontFamily="Segoe UI" Orientation="Horizontal">
    <StackPanel HorizontalAlignment="Stretch" Width="Auto">
        <TextBlock Padding="5,0,5,0" FontSize="12" FontWeight="Bold" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Title}" />
        <TextBlock Padding="5,0,5,0" FontSize="12" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Id}" />
    </StackPanel>
    <StackPanel>
        <TextBlock Padding="5,0,5,0" FontSize="10" Text="Delete">
            <TextBlock.Style>
                <Style TargetType="{x:Type TextBlock}">
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="FontWeight" Value="Bold" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>    
        </TextBlock>
        <TextBlock Padding="5,0,5,0" FontSize="10" Text="Move">
            <TextBlock.Style>
                <Style TargetType="{x:Type TextBlock}">
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="FontWeight" Value="Bold" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>    
        </TextBlock>
    </StackPanel>
</StackPanel>

我认为使用网格作为父元素可能会更好。省略样式等等,这里是图形中布局的XAML

<Grid>
   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="50" />  <!-- or some other fixed width -->
   </Grid.ColumnDefinitions>

   <StackPanel Grid.Column="0">
     <!-- left hand stackpanel content -->
   </StackPanel>
   <StackPanel Grid.Column="1">
      <!-- right hand StackPanel content -->
   </StackPanel>
</Grid>

为什么不使用网格呢

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="300" />
    </Grid.ColumnDefinitions>

    <StackPanel Grid.Column="0">
        <TextBlock Text="{Binding Title}" />
    </StackPanel>

    <StackPanel Grid.Column="1">        
        <TextBlock Text="Move" />
    </StackPanel>

</Grid>


您不需要为红色容器安装StackPanel。我会使用DockPanel,将最右边的蓝色面板停靠到右边,并确保LastChildFill处于启用状态,以确保最左边的蓝色面板扩展到窗口宽度。

以下是我从您的帖子中获得的代码:

<DockPanel TextBlock.FontFamily="Segoe UI" LastChildFill="True">
    <StackPanel DockPanel.Dock="Right">
        <TextBlock Padding="5,0,5,0" FontSize="10" Text="Delete">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="FontWeight" Value="Bold" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
        </TextBlock>
        <TextBlock Padding="5,0,5,0" FontSize="10" Text="Move">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="FontWeight" Value="Bold" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
        </TextBlock>
    </StackPanel>
    <StackPanel HorizontalAlignment="Stretch" Width="Auto">
        <TextBlock Padding="5,0,5,0" FontSize="12" FontWeight="Bold" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Title}" />
        <TextBlock Padding="5,0,5,0" FontSize="12" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Id}" />
    </StackPanel>
</DockPanel>


希望这有帮助

你的问题在哪里?似乎输出了相同的布局=/Perfect!我从来不知道你可以用星号作为宽度。谢谢
相当于
也称为