回答
您不需要UserControl
這個,只需將一個自定義的Button
模板作爲樣式資源,然後您可以通過在任何Button
實例上設置樣式來重複使用。
儘管沒有Blend是可行的,但我強烈建議您至少獲得試用版,這對設計/視覺開發來說是一個非常好的IDE!
編輯:作爲一個小禮物這裏有一個出發點:)
<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>
模板ButtonStyle1應放在App.xaml中。我應該如何從我的xaml頁面引用它。我試圖按照某些網站提供的指導方針進行操作,但沒有奏效。 – devnull 2011-06-02 11:21:46
最簡單的方法是在App.xaml內創建一個'
我想添加鼠標在您的模板上的效果。我應該用Expression Blend中的這段代碼創建一個新的XAML,以便鼠標懸停,禁用等事件可見。 – devnull 2011-06-04 03:14:51
你可以不用手工混合,但相信我,用混合會給你更多的權力,你會得到的時間部分更驚人的結果,如果你決定你需要自己做這一切。
我肯定會推薦摻和物,它造型的控制和創建模板時節省很多時間。
但是,如果你不具有按鈕完全相同一樣的圖像設置,還有,你可以使用(如JetPack),從中你可以借模板和相對修正顏色的幾個主題很容易在XAML中。
- 1. Silverlight的自定義按鈕
- 2. Silverlight自定義按鈕內容
- 3. Silverlight:自定義單選按鈕
- 4. 在Silverlight中禁用帶自定義內容的按鈕?
- 5. 另一個自定義按鈕上的自定義按鈕?
- 6. 自定義按鈕
- 7. 自定義按鈕
- 8. 自定義按鈕
- 9. 自定義按鈕
- 10. 自定義按鈕
- 11. 自定義按鈕
- 12. 自定義按鈕欄與自定義後退導航按鈕
- 13. 將自定義按鈕應用到自定義按鈕
- 14. 的TabBar自定義按鈕
- 15. swift的自定義按鈕
- 16. DataTable的按鈕 - 自定義
- 17. Android的自定義按鈕
- 18. WordPress的自定義按鈕?
- 19. 自定義按鈕定位
- 20. 圖像按鈕自定義控制,Silverlight的
- 21. +1按鈕與自定義按鈕
- 22. 從按鈕獲取自定義UITableViewCell的自定義標識按
- 23. 自定義DatePicker按鈕。 Android中的自定義組件
- 24. UINavigationController中的自定義後退按鈕
- 25. BlackBerry Air中的自定義按鈕?
- 26. TabControl中的自定義按鈕
- 27. Salesforce中的自定義按鈕覆蓋
- 28. 自定義QWIzard中的按鈕?
- 29. 在android中的自定義按鈕
- 30. Froala中的自定義「代碼」按鈕
你只是看看你還是已經有漸變顏色的細節? Blend會幫助很多,如果你只是看看...然而它完全可以在一個樣式中使用xaml(儘管可能很耗時)。您需要同時查看xaml和設計器,直到您看到您希望的漸變色。然後,您可以創建自己的繼承版本的按鈕,或者只使用單個按鈕或所有按鈕上的樣式。 – 2011-05-28 13:10:47