gpt4 book ai didi

wpf - AvalonDock:聚焦时更改标题背景

转载 作者:行者123 更新时间:2023-12-01 13:41:03 26 4
gpt4 key购买 nike

如果 Pane 获得焦点,我想更改 Pane 标题的背景。

所以试了一下:

    <Style TargetType="xcad:AnchorablePaneTitle">
<Setter Property="Background" Value="Green" />
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>

应用了绿色背景,但如果我在 Pane 中选择一个控件,则不会显示红色。特殊的副作用:如果我取消固定 Pane ,标题的背景将设置为默认值。如果我固定它,它会设置为绿色。

如何改变焦点?

最佳答案

您当前的解决方案存在两个问题。

AnchorablePaneTitle 的样式仅在 Pane 停靠到 DockingManager 时才有效。一旦您取消停靠 Pane ,就不再有 AnchorablePaneTitle,因为 AvalonDock 将根元素更改为具有不同结构的 LayoutFloatingWindowControl

第二个问题是您正在使用 IsFocused 属性。这是行不通的,因为 AnchorablePaneTitle 根本无法获得焦点(默认情况下它只是一个 TextBlock)。

要使其正常工作,您必须使用 DockingManagerAnchorableTitleTemplate 属性为标题创建一个 DataTemplate

这是一个例子:

<xcad:DockingManager.AnchorableTitleTemplate>
<DataTemplate>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding Model.IsActive, Mode=OneWay,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type xcad:LayoutAnchorableControl}},
FallbackValue=False}" Value="True">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsKeyboardFocusWithin, Mode=OneWay,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type xcad:LayoutFloatingWindowControl}},
FallbackValue=False}" Value="True">
<Setter Property="Background" Value="Blue"/>
</DataTrigger>
</Style.Triggers>
<Setter Property="Background" Value="Green"/>
</Style>
</Grid.Style>
<TextBlock Foreground="White" FontWeight="Bold" Text="{Binding Title}" />
</Grid>
</DataTemplate>
</xcad:DockingManager.AnchorableTitleTemplate>

我在这里创建了两个数据触发器,它们根据 anchor 当前所处的模式对不同的属性使用react:停靠或未停靠。

对于停靠状态,我使用了 Model.IsActive 属性,效果很好。对于未停靠( float )状态,我首先尝试了 xcad:LayoutFloatingWindowControl(派生自 Window)的 IsActive 属性,但它是对于所有 float 窗口始终为 true。也许这是因为它们都有一个 Owner(主窗口)。所以我决定使用 IsKeyboardFocusWithin,它非常适合 float 窗口。

关于wpf - AvalonDock:聚焦时更改标题背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40256234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com