2010-05-30 7 views
1

Je veux écrire un contrôle personnalisé qui est utilisé comme ceci:WPF: contrôle personnalisé qui lie son contenu à une étiquette

<HorizontalTick>Some string</HorizontalTick> 

Il devrait rendre comme ceci:

- chaîne --- ----------------------------------------

Voici mon code:

<UserControl x:Class="WeatherDownloadDisplay.View.HorizontalTick" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" d:DesignWidth="348" 
      Name="controlRoot"> 
    <DockPanel LastChildFill="True"> 
     <UserControl VerticalAlignment="Center" BorderBrush="Black" BorderThickness="1" Width="10"/> 
     <Label Content="???" /> 
     <UserControl VerticalAlignment="Center" BorderBrush="Black" BorderThickness="1"/> 
    </DockPanel> 
</UserControl> 

Cela fonctionne sauf pour la liaison d'étiquette. Quelqu'un peut-il m'aider à remplir les points d'interrogation? J'ai pensé à utiliser un ContentPresenter mais il semblerait qu'une liaison en ligne soit la meilleure.

-Neal

Répondre

1

La liaison serait:

<Label Content="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Content}" /> 

Cependant, reconsidérer l'aide d'un ContentPresenter pour pouvoir montrer tout contenu directement plutôt que d'ajouter une étiquette qui utilisera son propre ContentPresenter pour montrer . Cela étant dit, vous pouvez également remplacer votre contrôle entier par un simple ContentControl avec ContentTemplate montrant les lignes et le contenu interne.

Questions connexes