我在我的应用程序中使用了Context Menu,分隔符在datatemplate内部没有水平拉伸。分离器居中对齐,不会延伸到堆叠板端。我的代码如下,我附上截图,
<ContextMenu x:Key="ContextMenuItem" x:Name="menu" ItemsSource="{Binding Notifications}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<StackPanel>
<Grid HorizontalAlignment="Stretch" Margin="-30,0,-50,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0">
<Image Source="Resources/Icon.png" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0,1,5,0"
Visibility="{Binding note, Converter={StaticResource BoolToVisConverter}}">
</Image>
</StackPanel>
<StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="0,0,0,5">
<TextBlock Text="{Binding TestDate}" FontWeight="Bold"/>
<TextBlock Text=" - " Foreground="Black" FontWeight="Bold"/>
<TextBlock Text="{Binding Value}" FontWeight="Bold" Margin="0,0,10,0"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Vertical">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Margin="0,0,0,5">
<TextBlock Text="{Binding PropertyOne}" Foreground="Gray" FontSize="10"/>
<TextBlock Text="/" Foreground="Gray" FontSize="10"/>
<TextBlock Text="{Binding PropertyTwo}" Foreground="Gray" FontSize="10"/>
</StackPanel>
<StackPanel HorizontalAlignment="Stretch" Margin="0,0,0,5">
<TextBlock Text="{Binding Name}" Foreground="Blue"/>
</StackPanel>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="2" VerticalAlignment="Top" HorizontalAlignment="Center">
<Button Background="Transparent" BorderThickness="0" Click="ToolBar_Click">
<Image Source="Resources/[![enter image description here][1]][1]Icon.png" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
</StackPanel>
</Grid>
<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
</StackPanel>
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
答案 0 :(得分:0)
您的分隔符完全拉伸到父级(StackPanel)的大小。您的印象是因为上面的网格具有负边距:<Grid HorizontalAlignment="Stretch" Margin="-30,0,-50,0">
,这使得网格在父StackPanel之外流动。