2011-05-28 10 views
7

मैं चांदी की रोशनी में इस तरह के बटन कैसे बना सकता हूं। क्या मुझे इसके लिए अभिव्यक्ति मिश्रण की आवश्यकता है।चांदी के प्रकाश में कस्टम बटन

चूंकि मुझे अपने आवेदन में कई स्थानों पर संशोधित बटन का उपयोग करने की आवश्यकता है, तो क्या मुझे इसे उपयोगकर्ता नियंत्रण के रूप में करना चाहिए?

enter image description here

+2

क्या आपके पास अभी देखने के लिए है या आपके पास ढाल रंग का विवरण पहले से ही है? यदि आप बस देख रहे हैं तो मिश्रण बहुत मदद करेगा ... हालांकि यह शैली में xaml के साथ काम करने के साथ पूरी तरह से करने योग्य है (हालांकि समय लेने वाला हो सकता है)। आप एक ही समय में xaml और डिजाइनर को देखना चाहेंगे जब तक कि आप ग्रेडियेंट्स को यह नहीं देखते कि आप उन्हें कैसे चाहते हैं। फिर आप बटन का अपना विरासत संस्करण बना सकते हैं या केवल अलग-अलग बटन या सभी बटनों पर शैली का उपयोग कर सकते हैं। –

उत्तर

11

इसके लिए आपको UserControl की आवश्यकता नहीं है, केवल एक कस्टम संसाधन के रूप में एक कस्टम Button टेम्पलेट, जिसे आप किसी भी Button उदाहरण पर शैली सेट करके पुन: उपयोग कर सकते हैं।

हालांकि यह मिश्रण के बिना करने योग्य है, मैं आपको कम से कम परीक्षण प्राप्त करने की सलाह देता हूं, यह डिजाइन/दृश्य विकास के लिए वास्तव में वास्तव में अच्छा आईडीई है!

संपादित करें: एक छोटे से वर्तमान यहाँ एक प्रारंभिक बिंदु :)

<Style x:Key="ButtonStyle1" TargetType="Button"> 
    <Setter Property="Foreground" Value="#FFFFFFFF"/> 
    <Setter Property="Padding" Value="3"/> 
    <Setter Property="BorderThickness" Value="1"/> 
    <Setter Property="BorderBrush" Value="#FF000000"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Grid> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
             <VisualState x:Name="Normal"/> 
             <VisualState x:Name="MouseOver"/> 
             <VisualState x:Name="Pressed"/> 
             <VisualState x:Name="Disabled"> 
              <Storyboard> 
               <DoubleAnimation Duration="0" To="0.4" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="DisabledVisualElement"/> 
              </Storyboard> 
             </VisualState> 
           </VisualStateGroup> 
           <VisualStateGroup x:Name="FocusStates"> 
             <VisualState x:Name="Focused"> 
               <Storyboard> 
                <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"/> 
               </Storyboard> 
             </VisualState> 
             <VisualState x:Name="Unfocused"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
          <Border x:Name="Background" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> 
            <Border.Background> 
             <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
              <GradientStop Color="#FF707070" Offset="0"/> 
              <GradientStop Color="#FF666666" Offset="0.49"/> 
              <GradientStop Color="#FF5e5e5e" Offset="0.51"/> 
              <GradientStop Color="#FF535353" Offset="1"/> 
             </LinearGradientBrush> 
            </Border.Background> 
          </Border> 
          <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> 
           <ContentPresenter.Effect> 
             <DropShadowEffect BlurRadius="3" ShadowDepth="2" Opacity="0.5"/> 
           </ContentPresenter.Effect> 
          </ContentPresenter> 
          <Rectangle x:Name="DisabledVisualElement" Fill="#FFFFFFFF" IsHitTestVisible="false" Opacity="0"/> 
          <Rectangle x:Name="FocusVisualElement" IsHitTestVisible="false" Margin="1" Opacity="0" Stroke="#FF6DBDD1" StrokeThickness="1"/> 
        </Grid> 
       </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

टेम्पलेट बटन स्टाइल 1 को App.xaml में रखा जाना चाहिए। मुझे अपने xaml पेज से इसका संदर्भ कैसे देना चाहिए। मैंने कुछ साइटों में दिए गए दिशानिर्देशों के अनुसार करने की कोशिश की लेकिन काम नहीं किया। – devnull

+2

'App.xaml'' के अंदर '' टैग और '' टैग बनाना सबसे आसान है और इसे वहां पेस्ट करें, लेकिन आप अपना 'संसाधन डिक्शनरी' बनने के लिए एक अलग XAML भी बना सकते हैं और आयात कर सकते हैं '' – dain

+0

का उपयोग करके अपने 'App.xaml' में' मैं आपके टेम्पलेट पर प्रभावों पर माउस जोड़ने की कोशिश कर रहा हूं। क्या मुझे अभिव्यक्ति मिश्रण में इस कोड के साथ एक नया एक्सएएमएल बनाना चाहिए ताकि माउस, इवेंट आदि जैसे ईवेंट दिखाई दे सकें। – devnull

2

आप मिश्रण का उपयोग कर आप एक बहुत अधिक शक्ति दे देंगे हाथ से मिश्रण के बिना यह कर सकते हैं, लेकिन विश्वास है मुझे, और आप समय के अंश में और अधिक अद्भुत परिणाम अगर आप का फैसला आप की आवश्यकता होगी मिल जाएगा अपने आप सब कुछ करने के लिए।

2

मैं निश्चित रूप से मिश्रण की सलाह देते हैं, क्योंकि यह इतना समय की बचत होती है जब नियंत्रण स्टाइल और बनाने टेम्पलेट्स है के रूप में।

हालांकि, अगर आप बटन बिल्कुल छवि के रूप में एक ही होने पर सेट नहीं कर रहे हैं, वहाँ कई विषयों है कि आप (जैसे JetPack के रूप में) का उपयोग करें, जिससे आप टेम्पलेट्स उधार ले सकता सकता है और अपेक्षाकृत रंग में संशोधन कर रहे हैं आसानी से एक्सएएमएल में।

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