2010-01-30 60 views
8

路徑的整個「塊」我有我的一些Button s的特殊ControlTemplateWPF:製作點擊

<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> 

這工作得很好,但因爲我使用的是Path(在這種情況下,它只是形狀像一個胖X),完全路徑是可點擊,的棱角之間不小的空間X.是否有任何automagic東西可以用來製作X可點擊的整個「塊」?

我認爲在矩形對象包裹路徑,但我只是想確保我不會錯過一些小事。

+1

您不會錯過任何東西,這就是它是如何做(包裹在長方形,網格,帆布,或任何一個非空的背景 – 2010-01-30 19:09:11

回答

16

阿維亞德P.是正確的。這是我做的:

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

這工作,因爲當「命中測試」,以確定鼠標點擊要發送的,那麼「透明」刷認爲好像它是一個普通的顏色。

+0

一個側面說明:這是實際上沒有必要*包*的路徑任何人都可以在模板中使用第二條路徑,該路徑包含應該可點擊的形狀並設置「Fill =」Transparent「」(我需要有一個圓形形狀可點擊並且不想擺弄「Border」和'CornerRadius',在我的情況下) – Joey 2014-07-09 08:20:28

+0

這隻對我有效,當我將IsHitTestVisible =「True」添加到'Border'時, – 2015-06-25 21:14:57