Another WPF question...
<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>
Somwhere in the application code I have an instance of this control and I need to make it's corners rounded programmatically. Is this possible?
You need to use a Border to provide rounded corners, so you could do something like this:
<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>
And then add a property to your UserControl:
public int BorderRadius
{
get { return border.CornerRadius; }
set { border.CornerRadius = value; }
}
Which allows you to set the border's CornerRadius from code.
<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>
First find out the user control using the FindName Method and
Border brd=usercontrol.FindName("border") as Border;brd.CornerRadius=new CornerRadius(5);
you can also use RadiusX and RadiusY of Rectangle to create Rounded corners.
check this, Hope this helps!!