0

另一个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

4 回答 4

2
<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);
于 2010-04-08T16:54:06.903 回答
2

您还可以使用 Rectangle 的 RadiusX 和 RadiusY 创建圆角。

检查这个,希望这有帮助!

于 2010-04-08T18:23:18.147 回答
2
<Button x:Name="bbb"> b </Button>

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

在构造函数外部调用,可能是在 Loaded 事件上。

于 2019-06-20T15:52:20.647 回答
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。

于 2010-04-08T16:31:36.817 回答