2010-06-15 5 views
6

Tôi có một ứng dụng WPF nơi tôi đang cố gắng để làm cho một nút gần giống như hình ảnh. Tôi đang cố gắng vẽ một đường viền hoặc có viền hiển thị trên chuột ... Nhưng tôi dường như không thể làm cho nó hoạt động được. Tôi đã thử 6 phương pháp khác nhau để làm như vậy ... Hình ảnh, đường viền với hình ảnh, cọ vẽ, vv.WPF vẽ đường viền trên MouseOver

Tôi đang sử dụng đoạn mã sau vào lúc này:

<Canvas Name="cMin" Height="16" Width="16" 
     Grid.Column="1" Grid.Row="1"> 
    <Canvas.Background> 
     <ImageBrush ImageSource="_.png" Stretch="None" /> 
    </Canvas.Background> 
    <Border BorderBrush="Transparent" BorderThickness="1" Background="Transparent" 
      CornerRadius="0" Height="18" Width="18"> 
     <Border.Style> 
      <Style TargetType="Border"> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="BorderBrush" Value="LightBlue" /> 
        </Trigger> 
        <Trigger Property="IsMouseOver" Value="False"> 
         <Setter Property="BorderBrush" Value="Transparent" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Border.Style> 
    </Border> 
</Canvas> 

Bất kỳ trợ giúp sẽ được đánh giá cao, Cảm ơn!

Trả lời

10

Vấn đề là giá trị địa phương của bạn cho thuộc tính BorderBrush được ưu tiên hơn StyleTrigger của bạn. This MSDN article mô tả cách giá trị hiệu quả được giải quyết. Về cơ bản, xóa giá trị cục bộ khỏi phần tử Border và nó sẽ hoạt động. Nếu bạn cần chỉ định thuộc tính, bạn có thể làm như vậy trong một số Setter trong Style. Ngoài ra, Trigger thứ hai không cần thiết vì giá trị sẽ hoàn nguyên về giá trị ban đầu khi thuộc tính chuyển về false:

<Border BorderThickness="1" Background="Transparent" 
     CornerRadius="0" Height="18" Width="18"> 
    <Border.Style> 
     <Style TargetType="Border"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="BorderBrush" Value="LightBlue" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Border.Style> 
</Border> 
+0

Hoàn hảo, cảm ơn! – tcables