2013-09-05 68 views
3

我想要一個GridSplitter只有當用戶有鼠標移動它時纔可見。爲此,我在其樣式中設置了DataTrigger。但我無法弄清楚它是什麼錯,因爲我沒有得到想要的行爲。它只是保持不變。MouseOver上的Gridsplitter Visibile

   <GridSplitter 
      ResizeDirection="Columns" 
      ResizeBehavior="BasedOnAlignment" 
      Grid.Column="1" 
      Grid.Row="0" 
      Grid.RowSpan="2" 
      Width="8" 
      Height="Auto" 
      HorizontalAlignment="Left" 
      VerticalAlignment="Stretch" 
       Background="AliceBlue" 
      Margin="-3 0 0 0"> 
       <GridSplitter.Style> 
        <Style TargetType="{x:Type GridSplitter}"> 
         <Setter Property="Visibility" Value="Hidden"/> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding IsMouseOver}"> 
           <Setter Property="Visibility" Value="Visible"/> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </GridSplitter.Style> 
      </GridSplitter> 

您是否看到錯誤? GridSplitter必須以不同的方式樣式化?

回答

6

我想通了,觸發器必須被用來代替DataTriggers:

<GridSplitter.Style> 
          <Style TargetType="{x:Type GridSplitter}"> 
           <Setter Property="Background" Value="Transparent"/> 
           <Style.Triggers> 
            <Trigger Property="IsMouseOver" Value="True"> 
             <Setter Property="Background" Value="AliceBlue"/> 
            </Trigger> 
           </Style.Triggers> 
          </Style> 
         </GridSplitter.Style> 
        </GridSplitter> 

順便說一句,我認爲如果我設置VisibilityHidden我不能針對GridSplitter,所以我切換了代替Background