2009-06-03 25 views
6

में UserControls पर लागू करना मैं टूलबार के डिफ़ॉल्ट बटन शैली का उपयोग करने के लिए टूलबार के अंदर WPF में UserControls को कैसे लागू करूं?टूलबार बटन शैली बनाना टूलबार

<UserControl x:Class="myNameSpace.ImageButtonUserControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Name="imageButton" 
    > 
    <Button Style="{Binding ElementName=imageButton, Path=ButtonStyle}"> 
     <StackPanel Orientation="Horizontal"> 
      <Image Source="{Binding ElementName=imageButton, Path=ImageSource}" 
        VerticalAlignment="Center" 
        /> 
      <TextBlock Text="{Binding ElementName=imageButton, Path=Text}" 
         Style="{Binding ElementName=imageButton, Path=TextStyle}" 
         VerticalAlignment="Center" 
         /> 
     </StackPanel> 
    </Button> 
</UserControl> 

मैं उन बाध्यकारी पथ के लिए पीछे कोड में कुछ निर्भरता गुण होते हैं और सब कुछ ठीक काम करता है:

मैं एक सरल उपयोगकर्ता नियंत्रण ImageButton कहा जाता है जो इस तरह XAML कुछ है नहीं है।

तब तक जब तक मैं इसे टूलबार में नहीं डालता। आम तौर पर जब आप टूलबार में बटन डालते हैं तो टूलबार बटन की तरह दिखने के लिए टूलबार द्वारा उन्हें पुनः संयोजित किया जाता है। मुझे पता चला है कि मैं इस शैली को कैसे बदल सकता हूं (ToolBar.ButtonStyleKey देखें। लेकिन मैं अपने उपयोगकर्ता नियंत्रण बटन बटन निर्भरता संपत्ति में पहले से परिभाषित शैली को कैसे लागू कर सकता हूं?

उत्तर

19

ओह, मेरी माफ़ी! मैंने आपके प्रश्न का गलत व्याख्या किया। इसे एक शॉट दें:

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"> 
    Hello, world! 
</Button> 

शैली केवल बटन को लक्षित करती है, इसलिए इसे केवल बटन पर ही लागू किया जा सकता है। (जो आपकी टिप्पणी के रूप में कोई समस्या नहीं होगी।)

0

आपको इसे पाने के लिए कुछ शक्तिशाली काले जादू की आवश्यकता होगी अपने उपयोगकर्ता नियंत्रण के लिए स्वचालित रूप से एक कार्यशील नई शैली बनाएं। प्रत्येक प्रकार के अंतर्निर्मित नियंत्रण के लिए अंतर्निहित शैलियों हैं जिन्हें आप टूलबार में जोड़ सकते हैं। (ध्यान दें कि टूलबार। बटनटन स्टाइल अकेला नहीं है।) आपको शिल्प और अपनी शैली है कि अपने आप मानक उपकरण पट्टी तत्वों से मेल खाता है लागू होते हैं।

+0

मैं स्वचालित रूप से एक नहीं बनाना चाहता, मैं बस अपने उपयोगकर्ता नियंत्रण के अंदर बटन पर मौजूदा बटन शैली को लागू करना चाहता हूं। – Ray

4

मैं एक तरह से, काम करने के लिए लगता है कि पाया है, हालांकि मैं इस के हल के लिए अन्य तरीकों से दिलचस्पी रखता हूँ।

मैंने अपने UserControl में एक लोडेड ईवेंट हैंडलर जोड़ा और इसे अंदर रख दिया।

if (button.Style == null && this.Parent is ToolBar) 
{ 
    button.Style = (Style)FindResource(ToolBar.ButtonStyleKey); 
} 

बटन मेरे उपयोगकर्ता नियंत्रण के अंदर बटन का नाम कहां है।

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