2012-05-02 3 views
0

Я работаю над созданием пользовательского элемента управления диаграммой с дополнительной функциональностью с помощью элемента управления диаграммой D3. Ниже приведена моя проблема с пользовательским интерфейсом.Проблема с дизайном интерфейса WPF - видимость управления

У меня есть лоток панели инструментов наверху, график посередине и свернутая сетка данных внизу. Справа от пользовательского элемента управления находится докплиттер. Этот докплиттер охватывает длину пользовательского элемента управления и предоставляет область, где панель отображается иногда.

Когда я загружаю пользовательский элемент управления в окне 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

Смежные вопросы