2013-04-15 33 views
10

Tôi có một số StackPanel (1), với một số khác là StackPanel (2) bên trong.WPF - Cách thay đổi phong cách của trẻ em khi di chuột qua bố mẹ

SP 2 phải được ẩn (Độ mờ: 0) cho đến khi SP 1 được di chuột. Việc di chuyển chuột phải thay đổi kiểu của SP2 thành Độ mờ: 100.

enter image description here

tôi đã cố gắng xác định phong cách trong các nguồn StackPanel, và sử dụng trigger đó để sau đó nhắm vào bảng điều khiển bên trong, nhưng tôi không chắc chắn làm thế nào tôi nên nhắm vào trẻ em từ bên cò.

Cấu trúc kiểu đơn giản để làm điều này là gì?

Trả lời

18

Tôi không hiểu đầy đủ những gì bạn cần để tôi đăng 2 mẫu.

mẫu với màu sắc cho rõ ràng:

1) khi chúng ta có mouseover trên sp1 sp2 nhận được màu xanh

<Window x:Class="Prognoz.GP.DataCollection.TestMarkupProject.MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > 
<Window.Resources> 
    <Style x:Key="test" TargetType="StackPanel"> 
     <Setter Property="Background" Value="Red" /> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=StackPanel,AncestorLevel=1}, Path=IsMouseOver}" Value="True" > 
       <Setter Property="Background" Value="Green" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<Grid> 
    <StackPanel Width="400" Height="400" Background="Yellow"> 

     <StackPanel Width="350" Height="350" Style="{StaticResource test}"/> 
    </StackPanel> 
</Grid> 
</Window> 

2) khi chúng ta có mouseover trên sp2 sp2 nhận được màu xanh

<Style x:Key="test" TargetType="StackPanel"> 
     <Setter Property="Background" Value="Red" /> 
     <Style.Triggers> 
      <Trigger Property="StackPanel.IsMouseOver" Value="True" > 
       <Setter Property="Background" Value="Green" /> 
      </Trigger> 
     </Style.Triggers> 
</Style> 
+0

Thứ nhất là chính xác những gì tôi cần. Cảm ơn bạn! – Yisela

+0

điều thú vị: Tôi đã sử dụng mẫu đầu tiên với ** Thuộc tính = "Mức hiển thị" Giá trị = "Đã thu gọn" ** làm mặc định. nhưng sau đó tôi không thể nhìn thấy nó trên Designer :-). – itsho

Các vấn đề liên quan