2010-01-30 6 views
8

मेरे पास Button एस में से कुछ के लिए एक विशेष ControlTemplate है।डब्ल्यूपीएफ: पथ के पूरे "ब्लॉक" को क्लिक करने योग्य

<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 (इस मामले में, यह सिर्फ एक वसा एक्स जैसे आकार का है), बिल्कुल पथ क्लिक करने योग्य, के कोनों के बीच नहीं छोटी सी जगह है एक्स। क्या कोई ऑटोमैजिक चीज है जिसका उपयोग मैं एक्स के पूरे "ब्लॉक" को बनाने के लिए कर सकता हूं?

मैंने आयताकार वस्तु में पथ को लपेटने पर विचार किया है, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि मुझे कुछ तुच्छ याद नहीं आ रहा है।

+1

आप कुछ भी याद नहीं कर रहे हैं, इस तरह यह किया गया है (आयताकार, ग्रिड, कैनवास, या गैर-शून्य पृष्ठभूमि के साथ कुछ भी लपेटें। –

उत्तर

16

एवियाड पी सही है।

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

यह काम करता है क्योंकि जब निर्धारित करने के लिए जहां एक माउस क्लिक कराई जानी चाहिए "परीक्षण मारा", "पारदर्शी" ब्रश के रूप में अगर यह एक नियमित रूप से रंग था माना जाता है: यह मैं क्या कर रहा है।

+0

एक तरफ ध्यान दें: वास्तव में * पथ को लपेटना जरूरी नहीं है कुछ भी, कोई भी उस टेम्पलेट में दूसरे पथ का उपयोग कर सकता है जिसमें उस आकार को शामिल किया जा सकता है जिसे क्लिक करने योग्य होना चाहिए और 'भरें = "पारदर्शी" सेट करें (मुझे एक गोलाकार आकार क्लिक करने योग्य होना चाहिए और' सीमा 'के साथ बेकार नहीं होना चाहता था और 'कॉर्नर रेडियस', मेरे मामले में) – Joey

+0

यह केवल मेरे लिए काम करता था जब मैंने 'सीमा' के लिए 'IsHitTestVisible = "True" 'जोड़ा –

संबंधित मुद्दे