eri*_*ric 6 wpf xaml border itemscontrol
我在一个usercontrol中有一个带有自定义面板的itemscontrol.usercontrols大小仅受父窗口大小的约束.
<UserControl>
<Grid>
<Border BorderBrush="DarkGray" BorderThickness="5">
<ItemsControl ItemsSource="{Binding ActiveGame.Grid.CellsFlat}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Wpf:HexagonalPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Border>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
我现在想要仅在生成的面板周围绘制边框.但相反,它是围绕整个网格绘制的,或者可能更精确地与网格大小相同.
我想我在HexagonalPanel上正确实现了MeasureOverride,它返回了正确的大小,所以它不应该绘制那个大小的边框吗?
我错过了什么?
您尚未设置尺寸ItemsControl,因此它的尺寸也会与其父尺寸相符.尝试设置ItemsControl's HorizontalAlignment和VerticalAlignmentto Center; 这将使其ItemsControl实际大小与其内容相匹配.
ItemsControl本身有BorderBrush和BorderThickness属性。您可能想使用它们,因为默认情况下ItemsControl有一个。BorderControlTemplate