1

我最近创建了一个UserControl用于WrapPanel可视化一些数据的工具。我对其应用了 aPadding以便在每个元素之间留出一些空间。

第一个版本看起来像这样:

<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覆盖我的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"
         d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Template>
        <ControlTemplate TargetType="UserControl">
            <!-- Code -->
        </ControlTemplate>
    </UserControl.Template>
</UserControl>

我想再次申请Padding我的UserControl,但我尝试的一切都没有奏效。我试图应用一个Styleusing

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

但这没有用。在“标题”中设置Padding也不起作用。

Padding为了获得与第一个版本相同的结果,我必须在哪里设置值?

4

1 回答 1

4
<UserControl Padding="5,5,5,5">
    <UserControl.Template>
        <ControlTemplate TargetType="UserControl">
            <ContentPresenter Margin="{TemplateBinding Padding}" />
            <!-- Code -->
        </ControlTemplate>
    </UserControl.Template>

    <!-- Content -->
</UserControl>
于 2012-09-30T17:03:28.360 回答