2010-04-08 1 views
0

Другой WPF вопрос ...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> 

Somwhere в коде приложения У меня есть экземпляр этого элемента управления, и мне нужно, чтобы сделать это углы закруглены программно. Это возможно?

ответ

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 границы из кода.

+0

Мне нужно сделать это программно, код C#, а не XAML, а также я хотел бы использовать другое решение, кроме окружающего его с помощью границы. Но все равно спасибо. – morsanu

+0

Ах, извините, я не заметил его программной части. Я не думаю, что есть способ сделать закругленные углы, кроме использования границы. Я бы спросил, почему ты это делаешь? Вы просто пытаетесь изменить внешний вид кнопки управления? Если это так, есть лучшие способы сделать это, чем повторное создание кнопки с помощью UserControl. – Grokys

+0

Обновлен ответ, чтобы позволить вам делать то, что вы просите. Тем не менее, вам все равно нужна граница. Но я думаю, что вы должны взглянуть на тематические функции WPF до этого маршрута. – Grokys

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); 
1

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

проверка this, надеюсь, это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^