2013-02-25 3 views
0

У меня есть дерево управления, где пользователи могут выбирать узлы, проверяя их. Я хочу дать пользователю возможность отображать только выбранные элементы.Расширитель накладывает элемент управления в silverlight

Я думаю о расширителе. Когда пользователь расширяет расширитель, расширитель расширяется над исходным деревом с другим содержимым, которое отображает только выбранные элементы.

Проблема заключается в том, что расширитель только растягивается до размера его содержимого. Я хочу, чтобы расширитель полностью растянулся, чтобы исходное дерево было невидимым до тех пор, пока расширитель не рухнул.

Код приведен ниже. Дерево за пределами холста - это исходное дерево. Дерево внутри холста только для чтения дерева, которое расширитель должен показать

<Grid Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="33" /> 
        <RowDefinition Height="*"/> 
       </Grid.RowDefinitions> 


       <Canvas Canvas.ZIndex="999" Grid.Row="0" HorizontalAlignment="Stretch" > 
        <telerik:RadExpander HorizontalAlignment="Right" ToolTipService.ToolTip="Show Selected Items" 
         ExpandDirection="Down" Expanded="RadExpander_Expanded" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"> 
         <telerik:RadExpander.Header> 
          <TextBlock 
     Text="Selected Items" 

     Width="{Binding  RelativeSource={RelativeSource AncestorType=telerik:RadExpander}, Path=ActualWidth}" /> 
         </telerik:RadExpander.Header> 

         <telerik:RadTreeView IsExpandOnSingleClickEnabled="True" IsLoadOnDemandEnabled="False" 

              Height="{Binding RelativeSource={RelativeSource AncestorType=telerik:RadExpander}, Path=ActualHeight}" 
          ItemTemplate="{StaticResource SelectedElementDataOnlyTemplate}" Margin="0,0,0,8"    
           ItemsSource="{Binding Path=SelectedElementsOnly}" x:Name="ElementsTree2" > 
         </telerik:RadTreeView> 

        </telerik:RadExpander>     

       </Canvas> 
       <telerik:RadTreeView AutomationProperties.AutomationId="ElementPicker" IsExpandOnSingleClickEnabled="True" IsVirtualizing="True" 
          ItemsOptionListType="None" Grid.Row="1" ItemTemplate="{StaticResource ElementDataTemplate}" IsRootLinesEnabled="True" Margin="0,0,0,8" 
          ItemsSource="{Binding Path=Elements}" IsLoadOnDemandEnabled="True" Visibility="{Binding ToggleSelectedElements, 
                       Converter={StaticResource BoolToVisibilityConverter}}" LoadOnDemand="tvMain_LoadOnDemand" x:Name="ElementsTree" SelectedItem="{Binding Path=SelectedItem,Mode=TwoWay}"> 
       </telerik:RadTreeView> 
      </Grid> 

ответ

-2

Использование Canvas вместо сетки делает трюк.

Надеюсь, это поможет.

+0

Не могли бы вы еще немного объяснить? – Jimmy

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