Пользовательский контроль WPF - программно закругляет углы - PullRequest
0 голосов
/ 08 апреля 2010

Еще один вопрос 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 ]

1 голос
/ 08 апреля 2010
<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);
1 голос
/ 08 апреля 2010

Вы также можете использовать RadiusX и RadiusY для Rectangle для создания закругленных углов.

отметьте это , надеюсь, это поможет !!

1 голос
/ 08 апреля 2010

Вам необходимо использовать границу для обеспечения закругленных углов, чтобы вы могли сделать что-то вроде этого:

<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 из кода.

0 голосов
/ 20 июня 2019
<Button x:Name="bbb"> b </Button>

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

Вызов за пределами конструктора, возможно, при событии Loaded.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...