Пользовательский элемент управления WPF с Шаблонами Объекта/Данных

Один из способов сделать это - установить «margin-left: -15px» (выровнять число вручную, чтобы оно соответствовало вашей странице) в классе «form-check» в CSS. Другим способом было бы создать элемент 'div', который будет содержать как флажки, так и текст. Если это не сработает, тогда проверьте, что у вас CSS, вероятно, у «form-check» есть некоторые свойства margin или padding

5
задан Justin Bozonier 10 November 2008 в 23:50
поделиться

1 ответ

Вы захотите добавить DependencyProperty к своему управлению. xaml будет выглядеть немного отличающимся, если Вы произойдете из UserControl или Управления.

public partial class MyControl : UserControl
{
    public MyControl()
    {
        InitializeComponent();
    }

    public static readonly DependencyProperty ItemTemplateProperty =
        DependencyProperty.Register("ItemTemplate", typeof(DataTemplate), typeof(MyControl), new UIPropertyMetadata(null));
    public DataTemplate ItemTemplate
    {
        get { return (DataTemplate) GetValue(ItemTemplateProperty); }
        set { SetValue(ItemTemplateProperty, value); }
    }
}

Вот xaml для UserControl.

<UserControl x:Class="WpfApplication6.MyControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:src="clr-namespace:WpfApplication6">
    <ListBox ItemTemplate="{Binding ItemTemplate, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type src:MyControl}}}" />
</UserControl>

Вот xaml для Управления:

<Style TargetType="{x:Type src:MyControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type src:MyControl}">
                <Border Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">

                    <ListBox ItemTemplate="{TemplateBinding ItemTemplate}" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
15
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: