WPF用户控件 - 以编程方式进行圆角

时间:2010-04-08 16:18:41

标签: wpf user-controls shape

另一个WPF问题......

<UserControl x:Class="TKEApp.Components.UserControls.ButtonControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid Background="Black">
        <TextBlock Foreground="White" Background="Brown" Name="lblCaption" TextAlignment="Center"></TextBlock>
    </Grid>
</UserControl>

在应用程序代码的某个地方,我有一个这个控件的实例,我需要以编程方式对它进行四舍五入。这可能吗?

4 个答案:

答案 0 :(得分:1)

您需要使用边框来提供圆角,因此您可以执行以下操作:

<UserControl x:Class="TKEApp.Components.UserControls.ButtonControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Border x:Name="border" Background="Black">
        <TextBlock Foreground="White" Background="Brown" Name="lblCaption" TextAlignment="Center"></TextBlock>
    </Border>
</UserControl>

然后向UserControl添加一个属性:

public int BorderRadius
{
    get { return border.CornerRadius; }
    set { border.CornerRadius = value; }
}

允许您从代码设置边框的CornerRadius。

答案 1 :(得分:1)

<UserControl x:Class="TKEApp.Components.UserControls.ButtonControl" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="Transparent"> 
<Border x:Name="border"  Background="Black" BorderThickness="5" BorderBrush="Yellow"  > 
    <TextBlock Foreground="White" Background="Brown" Name="lblCaption" TextAlignment="Center"></TextBlock> 
</Border> 

首先使用FindName方法和

找出用户控件
    Border brd=usercontrol.FindName("border") as Border;brd.CornerRadius=new CornerRadius(5);

答案 2 :(得分:1)

您也可以使用RadiusX和Rectius的Rectius来创建圆角。

检查this,希望这会有所帮助!!

答案 3 :(得分:0)

<Button x:Name="bbb"> b </Button>

var r=bbb.Template.FindName("border",bbb);
((Border)r).CornerRadius = new CornerRadius(40);

在构造函数外部调用,也许在Loaded事件上。