Еще один вопрос 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>
Где-то в коде приложения у меня есть экземпляр этого элемента управления, и мне нужно, чтобы его углы были закруглены программно. Возможно ли это?
<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);
Вы также можете использовать RadiusX и RadiusY для Rectangle для создания закругленных углов.
отметьте это , надеюсь, это поможет !!
Вам необходимо использовать границу для обеспечения закругленных углов, чтобы вы могли сделать что-то вроде этого:
<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 из кода.
<Button x:Name="bbb"> b </Button>
var r=bbb.Template.FindName("border",bbb); ((Border)r).CornerRadius = new CornerRadius(40);
Вызов за пределами конструктора, возможно, при событии Loaded.