2010-04-08 5 views
0

programme Une autre question WPF ...WPF Control utilisateur - coins ronds

<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 dans le code d'application j'ai une instance de ce contrôle et je dois faire est coins arrondis par programme. Est-ce possible?

Répondre

1

Vous devez utiliser une bordure pour fournir des coins arrondis, de sorte que vous pouvez faire quelque chose comme ceci:

<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> 

Et puis ajoutez une propriété à votre UserControl:

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

Ce qui vous permet de Définissez CornerRadius de la bordure à partir du code.

+0

Je dois le faire par programmation, le code C#, pas XAML, et je voudrais aussi utiliser une autre solution que de l'entourer de bordure. Mais merci quand même. – morsanu

+0

Ah désolé, je n'ai pas remarqué la partie du programme. Je ne pense pas qu'il y ait moyen de faire des coins arrondis autres que l'utilisation d'une bordure. Je demanderais cependant, * pourquoi * vous faites ceci? Essayez-vous simplement de changer l'apparence d'un contrôle de bouton? Si c'est le cas, il existe de meilleures façons de le faire que de recréer un bouton à l'aide d'un UserControl. – Grokys

+0

Mise à jour de la réponse pour vous permettre de faire ce que vous demandez. Cependant, vous avez toujours besoin d'une frontière. Mais je pense que vous devriez jeter un coup d'oeil aux fonctionnalités thématiques de WPF avant de prendre cette route. – 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> 

d'abord trouver le contrôle de l'utilisateur en utilisant la méthode FindName et

Border brd=usercontrol.FindName("border") as Border;brd.CornerRadius=new CornerRadius(5); 
1

vous pouvez également utiliser RadiusX et RadiusY de rectangle pour créer des coins arrondis.

vérifiez this, Espérons que cela aide !!