2012-05-02 11 views
0

私はD3チャートコントロールを使用して余分な機能を持つチャートユーザーコントロールを作成するために取り組んでいます。以下は私のUIの問題です。WPF 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> 

答えて

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> 
+0

ありがとう!出来た! :) – Harsha