我正在使用D3图表控件创建具有额外功能的图表用户控件。以下是我的UI问题。
我顶部有一个工具栏托盘,中间有一个图表,底部有一个折叠的数据网格。在用户控件右侧是docksplitter。此docksplitter覆盖用户控件的长度,并提供偶尔显示面板的区域。
当我在WPF窗口中加载用户控件并将其设置为拉伸时,即使数据网格设置为在代码中可见(即单击按钮),底部的折叠数据网格也不可见。图表填写到底部。我该如何解决这个问题?
以下是相同的XAML:
<UserControl>
<DockPanel>
<Grid Name="LnChartEditor" DockPanel.Dock="Right"/>
<osc:DockPanelSplitter x:Name="DocSplitter" DockPanel.Dock="Right" Style="{StaticResource VerticalBevelGrip}" Width="7" />
<ToolBarTray DockPanel.Dock="Top" Height="32" Width="Auto" HorizontalAlignment="Stretch" Name="toolBarTrayTop" VerticalAlignment="Top" >
<ToolBar x:Name="ToolBarOben" DockPanel.Dock="Top" Height="30">
<Button Width="30" Height="30">
</Button>
<Label x:Name="lblCaption" Width="Auto">
</Label>
<Popup x:Name="Popup1" PlacementTarget="{Binding ElementName=ClearChart}" PopupAnimation="Slide" AllowsTransparency="true">
</Popup>
</ToolBar>
</ToolBarTray>
<Grid Name="grdPlotter" Background="WhiteSmoke" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<d3:ChartPlotter Name="LineChart" BorderThickness="10" Opacity="0.8" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<d3:AxisNavigation Placement="Right"/>
<d3:ChartPlotter.ContextMenu>
<ContextMenu Name="D3ContextMenu">
</ContextMenu>
</d3:ChartPlotter.ContextMenu>
</d3:ChartPlotter>
</Grid>
<DataGrid DockPanel.Dock="Bottom" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="gridMiniReport" Visibility="Collapsed" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" HeadersVisibility="Column" GridLinesVisibility="None">
</DataGrid>
</DockPanel>
答案 0 :(得分:0)
尝试更改声明的顺序,因为最后一个孩子填充了剩余空间:
<DockPanel>
<Grid Name="LnChartEditor" DockPanel.Dock="Right" />
<osc:DockPanelSplitter x:Name="DocSplitter" DockPanel.Dock="Right" />
<ToolBarTray Name="toolBarTrayTop" DockPanel.Dock="Top" />
<DataGrid x:Name="gridMiniReport" DockPanel.Dock="Bottom" />
<Grid Name="grdPlotter" />
</DockPanel>