wpf - 如何根据 ViewModel 中的值将条件效果应用于按钮?

标签 wpf user-interface button effects dropshadoweffect

我可以使用如下内容轻松地为按钮添加一点发光效果:

<Button ...>
  <Button.Effect>
    <DropShadowEffect ... />
  </Button.Effect>
</Button>

如何根据 ViewModel 中的值有条件地应用效果?

基本上,如果最近几天添加了新文档,我希望按钮“发光”。我可以提供 bool 值来指示是否需要发光作为 ViewModel 的属性。

我正在考虑只创建两个附加到同一命令的按钮,根据 ViewModel 隐藏一个按钮并显示另一个按钮。这确实可行,但似乎有点强制。

想法?

谢谢。

J

最佳答案

您需要为您的按钮创建一个样式 DataTrigger像这样:

<Button Content="Hello" Command="{Binding HelloCommand}">
    <Button.Style>
        <Style TargetType="Button">
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeCondition}" Value="True">
                    <Setter Property="Effect">
                        <Setter.Value>
                            <DropShadowEffect />
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

请注意,SomeCondition 是 View 模型中的 bool 属性。仅当 SomeConditiontrue 时,才会应用效果。

关于wpf - 如何根据 ViewModel 中的值将条件效果应用于按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243794/

相关文章:

c# - 替换 XamlPackage 中的文本

java - JTextArea 输出

python - 在主任务中显示来自后台任务的计数变量(Tkinter GUI)

javascript - 按钮输入上的 CSS 取消 jQuery 中的 prop disabled 属性

button - 快速按下时禁用按钮 90 秒

c# - WPF 和 WIndows 10. 窗口周围的不可见边框?

wpf - WPF 中的双向绑定(bind)

c# - 拖动和滚动 (WPF)

java - java swing问题中的背景图像

c# - Windows 窗体最大化并恢复正常