WPF: пользовательский элемент управления, который связывает его содержимое с меткой - PullRequest
1 голос
/ 31 мая 2010

Я хочу написать собственный элемент управления, который будет использоваться следующим образом:

<HorizontalTick>Some string</HorizontalTick>

Это должно выглядеть так:

- Некоторая строка -------------------------------------------

Вот мой код:

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

Работает, кроме привязки метки. Может ли кто-нибудь помочь мне заполнить вопросительные знаки? Я думал об использовании ContentPresenter, но кажется, что встроенное связывание было бы лучше.

-Neal

1 Ответ

1 голос
/ 31 мая 2010

Привязка будет:

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

Однако, пересмотрите использование ContentPresenter, чтобы иметь возможность отображать любой контент напрямую, вместо добавления метки, которая будет использовать собственный ContentPresenter для его показа.

При этом вы также можете заменить весь свой элемент управления простым ContentControl на ContentTemplate, показывающим линии и внутреннее содержимое.

...