2010-01-30 23 views
8

Tôi có một số ControlTemplate đặc biệt cho một số số Button s của mình.WPF: Làm cho toàn bộ "khối" của đường dẫn có thể nhấp được

<ControlTemplate TargetType="{x:Type Button}"> 
    <Path Name="ThePath" Fill="White" Stretch="UniformToFill" 
      Width="12" Height="12" Stroke="White" 
      StrokeThickness="4" 
      Data="M1.5,1.5 L10.5,10.5 M1.5,10.5 L10.5,1.5"/> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsFocused" Value="True"> 
      <Setter Property="Fill" Value="#afa" TargetName="ThePath"/> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 

này hoạt động tốt, nhưng kể từ khi tôi đang sử dụng một Path (trong trường hợp này, nó chỉ có hình dạng như một chất béo X), chính xác con đường là nhấp được, không phải là không gian nhỏ giữa các góc của X. Có bất kỳ điều tự động nào tôi có thể sử dụng để làm cho toàn bộ "khối" của X có thể nhấp được không?

Tôi đã xem xét gói đường dẫn trong một đối tượng hình chữ nhật, nhưng tôi chỉ muốn đảm bảo rằng tôi không thiếu thứ gì đó tầm thường.

+1

Bạn không bỏ sót bất cứ điều gì, đó là cách nó được thực hiện (bọc trong hình chữ nhật, lưới, canvas, hoặc bất cứ điều gì với một nền không null. –

Trả lời

16

Aviad P. là chính xác. Đây là những gì tôi làm:

<Border Background="Transparent"> 
    <Path ... /> 
</Border> 

Điều này hoạt động vì khi "thử nghiệm hit" để xác định nơi nhấp chuột sẽ được định tuyến, bàn chải "trong suốt" được coi là màu thường.

+0

Một lưu ý phụ: Nó không cần thiết để thực sự * quấn * đường dẫn trong bất cứ điều gì, người ta chỉ có thể sử dụng một đường dẫn thứ hai trong khuôn mẫu bao gồm hình dạng có thể nhấp và đặt 'Fill =" Transparent "' (tôi cần có một hình tròn có thể nhấp và không muốn fiddle với một 'Border' và 'CornerRadius', trong trường hợp của tôi) – Joey

+0

Điều này chỉ làm việc cho tôi khi tôi thêm' IsHitTestVisible = "True" 'vào' Border' –

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