0

D3 チャート コントロールを使用して、追加機能を備えたチャート ユーザー コントロールの作成に取り組んでいます。以下は私のUIの問題です。

上部にツールバー トレイ、中央にグラフ、下部に折りたたまれたデータ グリッドがあります。ユーザー コントロールの右側にはドック スプリッターがあります。このドックスプリッターは、ユーザー コントロールの長さをカバーし、パネルが時々表示される領域を提供します。

ユーザー コントロールを 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>

4

1 に答える 1

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>
于 2012-05-02T09:39:05.023 に答える