2010-04-08 54 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> 

然後一個屬性添加到您的用戶控件:

public int BorderRadius 
{ 
    get { return border.CornerRadius; } 
    set { border.CornerRadius = value; } 
} 

,它允許你從代碼中設置邊框的CornerRadius。

+0

我需要以編程方式,C#代碼,而不是XAML,而且我想使用另一個解決方案,而不是用邊框包圍它。不過謝謝。 – morsanu 2010-04-08 16:35:23

+0

對不起,我沒有注意到它的編程部分。我不認爲除了使用邊框之外,還有其他方法可以製作圓角。我會問,雖然,*爲什麼*你這樣做?你只是想改變按鈕控件的外觀?如果是的話,有比使用UserControl重新創建按鈕更好的方法。 – Grokys 2010-04-08 16:37:55

+0

更新了答案,讓你可以做你想問的問題。你仍然需要一個邊框。但我認爲你應該在採取這條路線之前看看WPF的主題特徵。 – Grokys 2010-04-08 16:46:11

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

你也可以使用半徑X和矩形的半徑Y創建圓角的用戶控件。

支票this,希望這有助於!