马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在WPF中,可以通过以下几种方式为按钮添加圆角(Radius化):
方法一:通过自定义按钮模板
在XAML中,可以通过自定义按钮的ControlTemplate来设置圆角。具体步调如下:
- 定义一个ControlTemplate,并在此中利用Border控件。
- 为Border控件设置CornerRadius属性。
示例代码:
- <Button Content="圆角按钮" Width="120" Height="40">
- <Button.Template>
- <ControlTemplate TargetType="{x:Type Button}">
- <Border CornerRadius="10" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1">
- <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Border>
- </ControlTemplate>
- </Button.Template>
- </Button>
复制代码 方法二:利用全局样式
假如需要为多个按钮设置同一的圆角样式,可以定义一个全局样式。
示例代码:
- <Window.Resources>
- <Style x:Key="RoundButtonStyle" TargetType="{x:Type Button}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type Button}">
- <Border CornerRadius="10" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1">
- <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </Window.Resources>
- <Button Content="圆角按钮" Width="120" Height="40" Style="{StaticResource RoundButtonStyle}"/>
复制代码 方法三:直接在Border控件中设置
假如按钮的内容是通过Border控件包装的,可以直接在Border控件中设置CornerRadius。
示例代码:
- <Button Content="圆角按钮" Width="120" Height="40">
- <Button.Resources>
- <Style TargetType="{x:Type Border}">
- <Setter Property="CornerRadius" Value="10"/>
- </Style>
- </Button.Resources>
- </Button>
复制代码 方法四:通过代码动态设置
假如需要在代码中动态创建按钮并设置圆角,可以通过以下方式:
- Button myButton = new Button
- {
- Content = "动态圆角按钮",
- Width = 120,
- Height = 40
- };
- var buttonTemplate = new ControlTemplate(typeof(Button))
- {
- VisualTree = new FrameworkElementFactory(typeof(Border))
- {
- SetValue(Border.CornerRadiusProperty, new CornerRadius(10)),
- SetValue(Border.BackgroundProperty, Brushes.LightBlue),
- SetValue(Border.ChildProperty, new FrameworkElementFactory(typeof(ContentPresenter))
- {
- SetValue(ContentPresenter.HorizontalAlignmentProperty, HorizontalAlignment.Center),
- SetValue(ContentPresenter.VerticalAlignmentProperty, VerticalAlignment.Center)
- })
- }
- };
- myButton.Template = buttonTemplate;
复制代码 以上方法可以根据现实需求选择利用,实现按钮的圆角结果。
|