如何创建悬停工具栏

时间:2013-05-21 15:48:47

标签: c# wpf mvvm

enter image description here

如何创建悬停的工具栏? 单击以展开ToolBar不会缩小画布。

Expander 适用于扩展,但画布会缩小。

<UserControl x:Class="smartgrid.studio.View.GraphicEditorView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:model="clr-namespace:smartgrid.studio.Model"
         xmlns:studio="clr-namespace:smartgrid.studio"
         xmlns:metro="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
         mc:Ignorable="d" 
         d:DesignHeight="1000" d:DesignWidth="1000">
<DockPanel>
    <Expander DockPanel.Dock="left" Header ="Toolbar" FontSize="18" ExpandDirection="Up">
        <TreeView Name="GraphicEditorEntityTree" Background="Transparent" BorderBrush="Transparent" ItemsSource="{Binding GraphicEditorEntities}"/>
    </Expander>
    <Canvas/>
</DockPanel>
</UserControl>

2 个答案:

答案 0 :(得分:3)

您可以通过将它们放在Grid中而无需行或列来覆盖事物,工具栏的大小调整是一个独立的事情(您仍然可以使用扩展器)。

答案 1 :(得分:1)

http://msdn.microsoft.com/en-us/library/system.windows.controls.panel.zindex.aspx

Panel.ZIndex 可能是解决方案。

<Grid x:Name="LayoutRoot">
 <Grid x:Name="Toolbar" Panel.ZIndex="1000" Visibility="Collapsed">
  </Grid>
  <canvas />
</Grid>