C# 如何使用“拉伸树视图项目”;XAML工具包中的材料设计;控制
我希望在TreeViewItem中有两个控件,Textblock向左对齐,togglebutton/内容控件向右对齐。要使用标准WPF控件执行此操作,需要覆盖标准ItemContainerStyle并删除第二列和/或将属性HorizontalContentAlignment设置为“拉伸”。但由于XAML工具箱控件中的材质设计无法正常工作 我的代码:C# 如何使用“拉伸树视图项目”;XAML工具包中的材料设计;控制,c#,wpf,material-design-in-xaml,C#,Wpf,Material Design In Xaml,我希望在TreeViewItem中有两个控件,Textblock向左对齐,togglebutton/内容控件向右对齐。要使用标准WPF控件执行此操作,需要覆盖标准ItemContainerStyle并删除第二列和/或将属性HorizontalContentAlignment设置为“拉伸”。但由于XAML工具箱控件中的材质设计无法正常工作 我的代码: <DataTemplate x:Key="DTBooleanOption" > <ToggleButton
<DataTemplate x:Key="DTBooleanOption" >
<ToggleButton DockPanel.Dock="Right"
Style="{StaticResource MaterialDesignSwitchDarkToggleButton}"
ToolTip="MaterialDesignSwitchDarkToggleButton"
IsChecked="{Binding Value}" />
</DataTemplate>
<DataTemplate DataType="{x:Type models:Option}">
<DockPanel HorizontalAlignment="Stretch" >
<TextBlock Text="{Binding Name}" DockPanel.Dock="Left" HorizontalAlignment="Left" />
<ContentControl Content="{Binding}" ContentTemplateSelector="{StaticResource OptionDataTemplateSelector}" DockPanel.Dock="Right" HorizontalContentAlignment="Stretch" HorizontalAlignment="Right"/>
</DockPanel>
</DataTemplate>
<HierarchicalDataTemplate DataType="{x:Type models:OptionGroup}" ItemsSource="{Binding Items}" >
<TextBlock Text="{Binding Path=Name}" HorizontalAlignment="Stretch"/>
</HierarchicalDataTemplate>
<StackPanel>
<TreeView ItemsSource="{Binding Settings.SettingGroups}" >
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem" BasedOn="{StaticResource MaterialDesignTreeViewItem}">
<Setter Property="VerticalContentAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch"/>
<!--<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem" >
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"
MinWidth="19" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>-->
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
</StackPanel>
如何拉伸它使一个控件向左对齐,一个控件向右对齐
1)您有以下错误:
<Setter Property="VerticalContentAlignment" Value="Stretch" />
应该是:
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
2) 您的坞面板应类似于:
<DockPanel HorizontalAlignment="Stretch" LastChildFill="True" >
<ToggleButton DockPanel.Dock="Right"
Style="{StaticResource MaterialDesignSwitchDarkToggleButton}"
ToolTip="MaterialDesignSwitchDarkToggleButton"
/>
<TextBlock Text="{Binding Name}" HorizontalAlignment="Left" />
</DockPanel>
谢谢,我没有注意到存在垂直内容对齐而不是水平内容对齐。我改变了这一点,它的工作!