Après contrôle personnalisé est créé il fichier est apparu automatiquement le code C# - MyCustomControl.cs:Où devrait être mis XAML pour la mise en page du contrôle personnalisé dans WPF?
public class MyCustomControl : ContentControl {
static MyCustomControl() {
...
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl),
new FrameworkPropertyMetadata(typeof(MyCustomControl)));
}
...
}
et fichier pour défaut stile - Thèmes \ generic.xaml:
<!-- themes/generic.xaml -->
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CustomControlLib">
<Style TargetType="{x:Type local:MyCustomControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyCustomControl}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Mais où et comment Je place correctement le code XAML pour la mise en page et le contenu de Custom Control lui-même?
Oui, j'essaie de le faire mais dans ce cas, j'obtiens une erreur: "La propriété 'Arbre visuel' est définie plus d'une fois" (si je mets un élément à côté de l'élément "Border") ou property'Child 'est défini plus d'une fois "(si je mets plus de deux éléments dans l'élément" Border ""). Ce que je fais mal? – rem
Il semble que je me rends compte: je devrais simplement ajouter un élément d'emballage, quelque chose comme StackPanel ou similaire .. Merci! – rem