在DependencyProperty中使用数据绑定

时间:2019-04-17 08:48:28

标签: c# wpf xaml data-binding dependency-properties

我创建了一个继承自Window的类,并获得了一个名为TitlebarContent的DependencyProperty

public FrameworkElement TitleBarContent
{
    get { return (FrameworkElement)GetValue(TitleBarContentProperty); }
    set { SetValue(TitleBarContentProperty, value); }
}

// Using a DependencyProperty as the backing store for TitleBarContent.  This enables animation, styling, binding, etc...
public static readonly DependencyProperty TitleBarContentProperty =
    DependencyProperty.Register("TitleBarContent", typeof(FrameworkElement), typeof(tkWindowControl), new PropertyMetadata(default(FrameworkElement)));

在样式的ResourceDictionary内,我为此属性添加了ContentControl。 现在,我想在另一个应用程序中使用新的“ WindowObject”并访问新的TitlebarContentProperty。我可以在标题栏中看到这些项目,并且可以移动Window,调整其大小等等。但是我不能绑定这些项目。例如,我想在标题栏中添加一个“帮助”按钮。显示了Button,但我无法单击它。

    <tk:tkWindowControl.TitleBarContent>
        <DockPanel Grid.Row="0"  FlowDirection="LeftToRight">
            <Button Content="Exit" Command="{Binding ExitApplicationCommand}" Height="60" Width="60" Background="Red"/>
        </DockPanel>
    </tk:tkWindowControl.TitleBarContent>

我的DependencyPropertytypeof(FrameWorkElement),因为我想在标题栏中添加几个Buttons

是否可以通过这种方式使用我的绑定?

1 个答案:

答案 0 :(得分:1)

WindowChrome.IsHitTestVisibleInChrome或父元素的Button附加属性设置为true

<Button Content="Exit" WindowChrome.IsHitTestVisibleInChrome="True" ... />

或者,您应该减小CaptionHeight的{​​{1}}属性的值。