继承ContentControl并添加属性?

时间:2018-03-22 21:02:26

标签: c# wpf xaml triggers

我正在尝试创建一个基本上是ContentControl的自定义控件,其中包含一些以特定方式打开的特殊模板。为了控制这个,我希望有一个简单的IsFlyoutOpen属性来控制打开/关闭。我试图继承ContentControl并添加依赖项属性:

public class FlyoutContentControl : ContentControl
{
    public bool IsFlyoutOpen
    {
        get => (bool)GetValue(IsFlyoutOpenProperty);
        set => SetValue(IsFlyoutOpenProperty, value);
    }

    // Using a DependencyProperty as the backing store for IsFlyoutOpen.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty IsFlyoutOpenProperty =
        DependencyProperty.Register("IsFlyoutOpen", typeof(bool), typeof(FlyoutContentControl),
            new PropertyMetadata(false));
}

这很好,但是当我创建一个针对此类型的内容模板时,它不会让我模板绑定到它。这是我的(精简)模板:

<ControlTemplate x:Key="CtFlyoutPanel" TargetType="{x:Type graphicElements:FlyoutContentControl}">
  <Grid>
    <Border x:Name="RectHelpClip" Background="Transparent">
      <Border Background="{StaticResource BrHelpBackground}" RenderTransformOrigin="1,0">
        <Border.Style>
          <Style TargetType="Border">
            <Style.Triggers>
              <DataTrigger Binding="{TemplateBinding IsFlyoutOpen}" Value="True">
                ...animations
              </DataTrigger>
            </Style.Triggers>
          </Style>
        </Border.Style>
      </Border>
    </Border>
    ... other stuff
  </Grid>
</ControlTemplate>

我错过了什么?为什么我不能在新房产上触发?

0 个答案:

没有答案