【问题标题】:How can I give background color here in treeview in complete width?如何在树视图中以完整宽度给出背景颜色?
【发布时间】:2022-01-03 07:01:57
【问题描述】:

我已经尝试在堆栈面板中使用 Horizo​​ntalAlignment="Stretch" 属性,但也没有这样做。 我现在可以通过提供固定宽度的堆栈面板来做到这一点的唯一方法,但我不希望那样。

如何设置这个树视图模板的背景与整个窗口拉伸?

<HierarchicalDataTemplate DataType="{x:Type local:Data}" ItemsSource="{Binding FamilyTexts}">
                    <StackPanel Orientation="Horizontal" Background="Green">
                        <Image x:Name="img" Source="{Binding Default.imageLocation}" ></Image>
                        <Label Content="{Binding Location}"/>
                    </StackPanel>
                </HierarchicalDataTemplate>

【问题讨论】:

  • 您是否尝试使用“TreeView”本身的“ItemContainerStyle”属性设置 TreeViewItem 对象的样式?
  • 堆叠面板的工作方式类似于松紧带。它的内容只会与内容一样广泛。

标签: wpf mvvm


【解决方案1】:

更新您的HierarchicalDataTemplate 以使用不同的布局面板。尝试使用 DockPanel 或带有两列的 Grid,而不是 StackPanel:

<DockPanel LastChildFill="True">
    <Image ... DockPanel.Dock="Left" />
    <Label ... DockPanel.Dock="Left" />
</DockPanel>
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image ... Grid.Column="0" />
    <Label ... Grid.Column="1" />
</Grid>

此外,TreeViewItem 的默认控件模板限制了标题的宽度。所以你需要修改控制模板来修复它。这个 SO 问题有你需要的答案:

HorizontalAlignment="Stretch" not working in TreeViewItem

【讨论】:

  • 网格也表现得适合自己以适合它的孩子。
  • 我用其他信息更新了答案,以帮助您解决问题。
猜你喜欢
  • 2021-09-26
  • 2019-04-06
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 2016-01-31
  • 2013-10-11
  • 2013-06-08
  • 1970-01-01
相关资源
最近更新 更多