- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果 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
)。
要使其正常工作,您必须使用 DockingManager
的 AnchorableTitleTemplate
属性为标题创建一个 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/
我的申请没有多个文件。所以我不需要 LayoutDocumentPane 中显示的选项卡。我发现它可以通过在此处使用样式进行自定义。 http://avalondock.codeplex.com/wi
我像这样使用 avalondock LayoutDocumentPane:
我正在开发一个可以使用 AvalonDock 的 WPF 界面,或类似的可停靠窗口界面。我的理解是 AvalonDock 是一个非常好的可停靠窗口界面,但我有点担心它的持续状态。真的很活跃吗?网站讨论
似乎 AvalonDock 在任何时候通过停靠或取消停靠操作窗口时都会卸载并重新加载其文档窗口的内容。有没有可能把它关掉? 就我而言,我正在显示实时视频流,我需要在窗口设置为 float 或重新停靠时
有谁知道如何在 AvalonDock 2.0 中更改 LayoutAnchorable 和 LayoutDocument 标题的字体属性?我希望能够应用在我的 WPF 应用程序中随处使用的样式以保持一
我正在使用知名的对接库AvalonDock 2.0在我的 WPF 项目中。该库支持 MVVM,这就是我想要做的。 GitHub 上提供了示例 MVVM 测试应用程序.我下载了示例并将其扩展以显示我需要
我使用的加载/保存布局类似于CodeProject所述。捕获LayoutSerializationCallback事件并尝试为LayoutItem查找相应的viewModel private void
使用 avalondock在 MVVM 环境中似乎相当具有挑战性。一旦我从 shellview 中分离 DocumentPane,我就会丢失相应的数据上下文并且我的 View 是空的。重新连接时,它会
我有一个使用 Avalon Dock 2.0 作为停靠管理器的 WPF 应用程序。我遇到了有关 Avalon Dock 正在执行的新打开选项卡的标准定位问题。 只要所有选项卡都适合选项卡栏,就会在选项
我有一个使用 Avalon Dock 2.0 作为停靠管理器的 WPF 应用程序。我遇到了有关 Avalon Dock 正在执行的新打开选项卡的标准定位问题。 只要所有选项卡都适合选项卡栏,就会在选项
如果 Pane 获得焦点,我想更改 Pane 标题的背景。 所以试了一下:
我刚刚开始使用 AvalonDock,几天来我一直在苦苦挣扎。我正在尝试从反序列化的停靠管理器加载我的布局的平凡任务。我尝试了这篇文章所建议的(“AvalonDock DockingManager d
我在项目中使用 AvalonDock。为了这个例子,它的结构如下: 这很好,但不幸的是,这些选项卡在高对
我正在尝试将我的 WPF 应用程序转换为使用 AvalonDock。我有几个窗口(大约 10 个)和具有 DockingManager 的主窗体。我想将这些窗口放在 DockingManager 中。
我想更改 AvalonDock 的 Metro 主题颜色。我也问了a related question on Codeplex但到目前为止我还没有得到答案。 我将以下 XAML ( source fi
我正在尝试在 AvalonDock 中选择选项卡(在 LayoutDocumentPaneGroup 和 LayoutAnchorablePane 中)。这看起来应该是一件容易的事,但我正在努力寻找有
我试图弄清楚如何使 AvalonDock 的 VS2010 风格更像 VS2010。我运行的问题是,当有更多的标签时比在标题区域中适合时,用户没有更多的标签。 我认为选项卡标题只是被剪裁而不可见。我有
我有一个带有 AvalonDock 的窗口。启动时会打开一个文档,其中充满 LocControllers 用户控件 (LocControllersViewModel)。 现在我希望当双击 LocCon
我想删除它们,因为这给我带来了很多问题。如果有办法解决它,我会很乐意尝试。 使用它的前几分钟我得到了 3 个不同的异常(exception),我不知道如何删除那些该死的选项。 固定和取消固定和固定会引
我的 MVVM WPF 应用程序中有一个 AvalonDock(版本 3.5)。绑定(bind)如下: 因此,当我在 View 模型中将新的 Anchorable 添加到相应的“Anchor
我是一名优秀的程序员,十分优秀!