另一个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>
在应用程序代码的某个地方,我有一个这个控件的实例,我需要以编程方式对它进行四舍五入。这可能吗?
答案 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事件上。