代码之家  ›  专栏  ›  技术社区  ›  TorbenJ

使用指定的ControlTemplate设置UserControl的填充?

  •  1
  • TorbenJ  · 技术社区  · 12 年前

    我最近创建了一个 UserControl 为了我 WrapPanel 以使一些数据可视化。 我申请了 Padding 以便在每个元素之间获得一些空间。

    第一个版本看起来是这样的:

    <UserControl x:Class="IFCS.EntityOverviewPanel"
             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" 
             xmlns:l="clr-namespace:IFCS"
             mc:Ignorable="d"
             Padding="5, 5, 5, 5"
             d:DesignHeight="300" d:DesignWidth="300">
        <!-- Code -->
    </UserControl>
    

    现在我刚申请了 ControlTemplate 它覆盖了我的 衬料 背景

    当前版本如下所示:

    <UserControl x:Class="IFCS.EntityOverviewPanel"
             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" 
             xmlns:l="clr-namespace:IFCS"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300">
        <UserControl.Template>
            <ControlTemplate TargetType="UserControl">
                <!-- Code -->
            </ControlTemplate>
        </UserControl.Template>
    </UserControl>
    

    我想申请 衬料 到我的 用户控制 但是我所尝试的一切都没有成功。 我试着申请 Style 使用

    <UserControl.Style>
        <Style TargetType="{x:Type UserControl}">
            <Setter Property="Padding" Value="5, 5, 5, 5"/>
        </Style>
    </UserControl.Style>
    

    但这并没有奏效。 设置 衬料 在“标题”中也不起作用。

    我必须在哪里设置 衬料 值,以便获得与第一个版本中相同的结果?

    1 回复  |  直到 12 年前
        1
  •  5
  •   SHSE    12 年前
    <UserControl Padding="5,5,5,5">
        <UserControl.Template>
            <ControlTemplate TargetType="UserControl">
                <ContentPresenter Margin="{TemplateBinding Padding}" />
                <!-- Code -->
            </ControlTemplate>
        </UserControl.Template>
    
        <!-- Content -->
    </UserControl>