2013-11-23 66 views
0

我有一個包含功能區菜單的WPF應用程序。這很簡單,因爲我想了解更多關於WPF的知識。所以我有兩個功能區組。每個組都有一個按鈕。當某人將鼠標懸停在網格向下滑動的按鈕上時,我想要發生的事情。即從功能區菜單的下面開始,一直走到窗口的底部。WPF滑動網格

以下是我的代碼。這是一種工作。當它懸停在按鈕「buttSimSec」上時,網格「paneSimFirst」確實滑動。然而它從我的應用程序窗口的中心開始。當鼠標懸停在其上時,另一個按鈕不會執行任何操作。

另外我想知道如何不必重複我的功能區中的每個按鈕的EventTrigger代碼?

無論你想
<DockPanel Name="dockMain"> 
    <Ribbon DockPanel.Dock="Top" Title="Simulator" x:Name="mainRibbon">    
     <RibbonTab x:Name="Simulator" Header="Simulator"> 
      <RibbonGroup x:Name="grpSecurities" Header="Securities"> 
       <RibbonButton x:Name="buttSimSec" Label="Select Securities"> 
        <RibbonButton.Triggers> 
         <EventTrigger RoutedEvent="MouseEnter"> 
          <BeginStoryboard> 
           <Storyboard> 
            <DoubleAnimation 
             Storyboard.TargetName="paneSimFirst" 
             Storyboard.TargetProperty="(Grid.Height)" 
             From="0" 
             To="50" 
             Duration="0:0:2"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger> 
        </RibbonButton.Triggers> 
       </RibbonButton> 
      </RibbonGroup> 
      <RibbonGroup x:Name="grpModels" Header="Models"> 
       <RibbonButton x:Name="buttModels" Label="View Models"> 
        <RibbonButton.Triggers> 
         <EventTrigger RoutedEvent="MouseEnter"> 
          <BeginStoryboard> 
           <Storyboard> 
            <DoubleAnimation 
             Storyboard.TargetName="paneSimSecond" 
             Storyboard.TargetProperty="(Grid.Height)" 
             From="0" 
             To="50" 
             Duration="0:0:2"/> 
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger> 
        </RibbonButton.Triggers> 
       </RibbonButton> 
      </RibbonGroup> 
     </RibbonTab> 
    </Ribbon> 
    <Grid Name="ParentGrid" Grid.IsSharedSizeScope="True" Visibility="Visible"> 
     <Grid x:Name="paneSimFirst" Visibility="Visible" Background="Purple"> 
     </Grid> 
     <Grid x:Name="paneSimSecond" Visibility="Collapsed" Background="YellowGreen"> 
     </Grid> 
    </Grid> 
</DockPanel> 

回答