工具栏位于第一行。如何将工具栏拉伸为整行的宽度?
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ToolBarTray Background="Transparent">
<!--Toolbar.xaml-->
<ToolBar x:Name="mainToolbar"
Style="{StaticResource mainToolBarStyle}"
ItemsSource="{Binding ToolbarItems}"
ItemTemplateSelector="{StaticResource toolBarItemTemplateSelector}"
DataContext="{Binding}">
</ToolBar>
</ToolBarTray>
答案 0 :(得分:3)
我删除了ToolbarTray并设置了HorizontalContentAlignment =“Strech”这样做了
答案 1 :(得分:3)
如果您要离开ToolBarTray
,可以使用ToolBar.Width
属性上的绑定,如下所示:
<ToolBarTray Background="Transparent">
<!--Toolbar.xaml-->
<ToolBar Width="{Binding ActualWidth,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ToolBarTray}}}">
<Button>Hello</Button>
</ToolBar>
</ToolBarTray>
答案 2 :(得分:1)
<ToolBarTray Background="Transparent" Width="Auto">
<!--Toolbar.xaml-->
<ToolBar x:Name="mainToolbar" HorizontalContentAlignment="Stretch"
Style="{StaticResource mainToolBarStyle}"
ItemsSource="{Binding ToolbarItems}"
ItemTemplateSelector="{StaticResource toolBarItemTemplateSelector}"
DataContext="{Binding}">
</ToolBar>
</ToolBarTray>
答案 3 :(得分:1)
我就这样做了:
首先,我删除了toolbarTray并保留了工具栏
<ToolBar>
<Button x:Name="OpenTabsButton1" Click="OpenTabs_Click" Style="{StaticResource OpenTabs}">Open Tabs</Button>
<Button x:Name="ShortcutsButton1" Click="OpenTabs_Click" Style="{StaticResource Shortcuts}">Shortcuts</Button>
<Button x:Name="HelpButton1" Click="OpenTabs_Click" Style="{StaticResource Help}">Help</Button>
<Button x:Name="ProfileButton1" Click="Profile_Click" Style="{StaticResource Profile}">Profile</Button>
<Button Style="{DynamicResource CloseButton}"></Button>
</ToolBar>
然后,我为工具栏创建了一个样式
<Style x:Key="{x:Type ToolBar}" TargetType="{x:Type ToolBar}">
<Setter Property="SnapsToDevicePixels" Value="true" />
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToolBar}">
<Grid Background="{StaticResource ToolGridBackground}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Style="{StaticResource LogoImage}"/>
<ToolBarPanel Grid.Column="2" x:Name="PART_ToolBarPanel" IsItemsHost="true" Margin="0,1,2,2" Orientation="Horizontal"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
重要的部分是:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
并且
<ToolBarPanel Grid.Column="2"/>
这样,您的按钮将右对齐
答案 4 :(得分:0)
使用父宽度,例如
<Grid x:Name="GrdToolbar" Height="auto" Margin="0">
<ToolBarTray Width="{Binding Path=ActualWidth, ElementName=GrdToolbar}" >
<ToolBar ItemsSource="{Binding MenuItems}" HorizontalContentAlignment="Stretch">
<ToolBar.ItemTemplate>
<DataTemplate>
<Button ToolTip="{Binding Name}" Tag ="{Binding Name}"
Command="{Binding DataContext.ButtonCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}}"
CommandParameter="{Binding RelativeSource={RelativeSource Self}}">
<Button.Content>
<Image Width="32" Height="32" Source="{Binding Icon}"></Image>
</Button.Content>
</Button>
</DataTemplate>
</ToolBar.ItemTemplate>
</ToolBar>
</ToolBarTray>
</Grid>