2012-09-05 41 views
1

我試圖找出它是否有可能實現一個面板彈出包含數據網格鼠標懸停在「擴展器」位。鼠標懸停菜單像在visual studio中的工具欄

尋找一些行爲與Visual Studio中的工具箱相似的東西。

即時通訊有重大問題搜索作爲即時消息不確定其稱爲。

請讓我知道如果我需要更好地解釋自己。

+1

...你需要更好地解釋自己;) –

+0

如果您有視覺工作室左側的工具箱。我想要的行爲完全一樣,但不是有工具箱項目,我希望它有一個數據網格。還需要更多的解釋嗎?我可以做一些截​​圖如果需要的話:) – user589195

回答

0

我會促進WPF動畫來實現任何種類的菜單,彈出/出現/幻燈片/以某種方式順利進入行動。

建立在你想例如任何方式的菜單控制基於StackPanel,然後爲其位置屬性指定一些自定義動畫以使其顯示並消失。

動畫的使用非常簡單,因爲您只是爲特定屬性指定開始值,目標值以及在這兩者之間進行轉換的方式。

例如做一個StackPanel增長和收縮你可以做到以下幾點:

// suppose you have a stackpanel named sp. 

// create the actual animation 
DoubleAnimation myDoubleAnimation = new DoubleAnimation(); 
myDoubleAnimation.From = 100; 
myDoubleAnimation.To = 300; 
myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(5)); 

// cerate the storyboard which comprise all your single animations into a compound animation - a storyboard. 
StoryBoard myStoryboard = new Storyboard(); 
myStoryboard.Children.Add(myDoubleAnimation); 

// link the animation with the object it is supposed to work on 
Storyboard.SetTargetName(myDoubleAnimation, sp.Name); 

// specify the target property of ypur StackPanel which should be affected by the animation 
Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(Rectangle.Width)); 

對於一個完整的介紹,你可以開始閱讀這裏:http://msdn.microsoft.com/en-us/library/ms752312.aspx

也瞭解,因爲在他們的幫助緩解功能你可以構建更復雜的動畫。

1

您可以使用AvalonDock實現這一

enter image description here

這是在XAML做下面的代碼:

<avalondock:DockingManager x:Name="dockingManager"> 
    <avalondock:LayoutRoot> 
     <avalondock:LayoutRoot.LeftSide> 
      <avalondock:LayoutAnchorSide> 
       <avalondock:LayoutAnchorGroup> 
        <avalondock:LayoutAnchorable Title="Autohidden Content"> 
         <DataGrid> 
          <DataGrid.Columns> 
           <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col1"/> 
           <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col2"/> 
           <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="Col3"/> 
          </DataGrid.Columns> 
         </DataGrid> 
        </avalondock:LayoutAnchorable> 
       </avalondock:LayoutAnchorGroup> 
      </avalondock:LayoutAnchorSide> 
     </avalondock:LayoutRoot.LeftSide> 
    </avalondock:LayoutRoot> 
</avalondock:DockingManager> 
+0

由於將有一個適宜的外觀和測試,然後標記爲答案:) – user589195