控制模板可见性触发器

2023-12-31

我对下面的按钮样式所做的只是让按钮仅在 IsMouseOver 或 IsPressed 时可见。

它的编写方式甚至无法编译,找不到“Glyph”。如何清理这个问题,直到 IsMoueOver 时按钮可见?

Cheers,
Berryl

<Style x:Key="EditCommandButtonStyle" TargetType="{x:Type Button}">
   <Setter Property="Content">
      <Setter.Value>
         <TextBlock x:Name="Glyph" Width="30" 
            FontFamily="Wingdings 3" FontSize="24" Text="a" Visibility="Hidden"/>
      </Setter.Value>
   </Setter>
   <Setter Property="Template">
      <Setter.Value>
         <ControlTemplate TargetType="{x:Type Button}">
            <Border x:Name="Border" Background="Transparent" CornerRadius="4">
               <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
            </Border>
            <ControlTemplate.Triggers>
               <Trigger Property="IsMouseOver" Value="True">
                  <Setter TargetName="Border" Property="Background" Value="LightBlue"/>
                  <Setter TargetName="Glyph" Property="Visibility" Value="Visible"/>
               </Trigger>
               <Trigger Property="IsPressed" Value="True">
                  <Setter TargetName="Border" Property="Background" Value="Orange"/>
               </Trigger>
            </ControlTemplate.Triggers>
         </ControlTemplate>
      </Setter.Value>
   </Setter>
</Style>

使 ContentPresenter 成为指定目标而不是 TextBlock。

<Style x:Key="EditCommandButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Content">
        <Setter.Value>
            <TextBlock FontFamily="Wingdings 3" FontSize="24" Text="a" />
        </Setter.Value>
    </Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border x:Name="Border" Background="Transparent" CornerRadius="4">
                    <ContentPresenter x:Name="theContent" Visibility="Hidden"
                           HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter TargetName="Border" Property="Background" 
                                Value="LightBlue"/>
                        <Setter TargetName="theContent" Property="Visibility" 
                                Value="Visible"/>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter TargetName="Border" Property="Background" 
                                Value="Orange"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

控制模板可见性触发器 的相关文章

  • 指定 Xaml 中开始标记和结束标记之间的属性

    考虑以下 Xaml
  • WPF:路由事件还是常规事件?

    在 WPF 中 我们有路由事件 什么时候应该使用这些来代替常规事件 路由事件具有特殊的行为 但如果您在引发事件的元素上处理事件 则该行为在很大程度上是不可见的 如果您使用任何建议的方案 路由事件就会变得强大 在公共根定义公共处理程序 组合您
  • 如何使用数据绑定比较 xml 文件中的字符串

    如何使用数据绑定将我的对象字符串字段值与 xml 文件中的另一个字符串值进行比较 是否可以在 xml 文件中执行此操作 或者我应该在项目中的某个位置创建一个方法 BindingAdapter注解 以下是我迄今为止尝试过的方法 但没有成功 最
  • 将 FileSavePicker 与 MessageDialog 的 IUICommand 事件结合使用

    单独来看 所有代码都可以完美运行 用于保存文件的代码片段 用于选择保存文件的目录的代码片段以及消息对话框都非常有效 但是当我将它们结合在一起时 我的访问被拒绝 我没有使用 DocumentsLibrary 功能 因为在这种情况下不需要我这样
  • wpf中基于绑定bool属性的样式对象

    如何使用 wpf 中的 xaml 更改我在 mvvm 设置中要使用的对象的填充颜色 当绑定的属性设置为 True 时 我想将填充颜色更改为红色 该属性称为 IsRound 如果需要的话我会发布代码 我现在不在电脑上 UPDATED 有人可以
  • Windows 8 网格应用程序中的自定义详细信息页面

    我创建了一个简单的 C Windows 8 网格应用程序 如果您不熟悉这种布局 这里有一个简短的解释 Link http blogs msdn com b window 8 avtar archive 2012 09 24 part 1 c
  • 列表框未虚拟化

    我有一个未虚拟化的列表框 我显然错过了一些东西 但找不到它 它实际上是一个列表框内的一个列表框 外部列表框有一个 ItemTemplate 其中包含一个 Expander Expander 用于显示一组项目 Expander 的内容是显示项
  • XAML中无限旋转矩形

    如何定义XAML无限旋转矩形 到目前为止 我找到了一个带有代码但没有 xaml 的解决方案 http www codeproject com Articles 23257 Beginner s WPF Animation Tutorial
  • 列表框仅显示一项

    我有一个ListBox和一个带有字符串的类 每次用户单击应用程序中的添加按钮时 我都会创建该类的一个新实例并将其添加到绑定到的列表中ListBox 第一次单击 添加 按钮时 列表框显示第一项 但下次单击时不再显示两项 XAML 这是List
  • DataGrid 是 WPF 中的必需品吗?

    我看到很多讨论正在进行 人们询问 WPF 的 DataGrid 并抱怨 Microsoft 迄今为止还没有在其 WPF 框架中提供 DataGrid 我们知道 WPF 是一项出色的 UI 技术 并且具有 ItemsControl DataT
  • 使用 MVVM 时 XamDataGrid 列可见性不起作用

    我正在尝试在 MVVM 架构中实现 XamDataGrid 列可见性 但它似乎不起作用 我正在执行以下操作 为未绑定字段添加可见性属性
  • wpf 按钮悬停渐变不起作用

    我在 wpf 中使用带有渐变背景的按钮 但鼠标悬停时背景不起作用 我的代码有什么问题吗
  • 使用 C# 从 UIElement 截取 WPF 屏幕截图 JPG

    我正在尝试从我的 WPF 应用程序的一部分创建 JPG 就像截图一样 只是个人的UIElements 我从这里开始 http www grumpydev com 2009 01 03 take wpf screenshots http ww
  • 在 fxml 中使用自定义控件

    假设我已经对默认值进行了子类化TableView
  • DockPanel 选项卡顺序

    我在 ItemsControl 的 DataTemplate 中设置了一个 DockPanel 如下所示
  • 我如何在 WPF 中模仿这种行为?

    我对 WPF 和 C 开发相当陌生 我正在制作这个应用程序 我不知道是否有人熟悉 VOIP App Discord 但他们有一个我非常喜欢的特定行为 并且想尝试使用 WPF 创建类似的风格 当您在 Discord 上添加服务器时 单击一个按
  • 如何在 WPF 中更改按钮 MouseOver 的背景?

    我的页面上有一个带有以下 XAML 的按钮
  • 当 View 被渲染/实例化时通知 ViewModel

    我有一个自定义用户控件 ChartControl 我在我的 WPF 应用程序中使用 MainApp 我渲染如下
  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 如何让窗口最大化时所有控件按比例调整大小?

    当我单击最大化按钮时 窗口最大化 但控件未按比例调整大小 使控件相应调整大小的最佳方法是什么 我正在使用MVVM 这是我的代码

随机推荐

  • 删除时 AWS S3 访问被拒绝

    我有一个可以毫无问题地写入的存储桶 但是 当我尝试删除对象时 出现错误 AccessDeniedException in NamespaceExceptionFactory php line 91 遵循非常基本的示例here http do
  • 如何在 Linux 上用 C 检查堆栈和堆的使用情况?

    有没有办法在Linux上检索C中的堆栈和堆使用情况 我想知道堆栈 堆专门占用的内存量 如果您知道进程的 pid 例如 1234 则可以使用pmap 1234命令 打印内存映射 您还可以阅读 proc 1234 maps文件 实际上是一个文本
  • ANSI C 中的复合语句(块)是否被括号表达式包围?

    浏览我找到的 Linux 内核源代码一些代码 http lxr linux no linux v2 6 30 arch x86 include asm uaccess h L332其中括号包围的语句块被视为表达式口齿不清 或ML 即一个表达
  • 为 iPad 进行编译时是否设置了特定的 Xcode 编译器标志?

    为 iPad 进行编译时是否设置了特定的 Xcode 编译器标志 我想有条件地编译 iPad 与 iPhone iPod Touch 代码 例如 ifdef TARGET IPAD code for iPad else code for i
  • Eclipse 3.7 Indigo:“关于对话框”错误

    我最近将 Eclipse 3 6 实例升级到 3 7 我想查看 帮助 gt 关于 Eclipse 选项 但没有显示此对话框 使用 consoleLog debug 选项运行它以了解可能出现的问题 这就是我所看到的 有什么想法吗 顺便说一句
  • 将 ETag / Last-Modified 装饰器与 Django 基于类的通用视图一起使用

    我最近将 Django 项目之一中的所有视图迁移到新的基于类的视图 对于经典的基于函数的 Django 视图 有一个方便的装饰器django views decorators http condition如果存在与您指定的条件匹配的缓存副本
  • 反应堆模式在 Node.js 中如何工作?

    我正在阅读 Node js 设计模式 我陷入了对反应堆模式的理解中 我在这里没有看到任何调用堆栈 我认为调用堆栈是 Node js 设计的主要部分之一 谁能帮我理解这张图吗 此外 没有回调队列 一切都从应用程序开始 应用程序发出请求 事件多
  • 如何在 AngularJS 中大写和大写?

    我想将 HTML 表单中的某些字段大写 大写 HTML
  • 将 QMatrix4x4 与 OpenGL 函数结合使用

    有没有简单的使用方法QMatrix4x4与 OpenGL 功能 特别是glMultMatrixf 如果我理解正确的话 我必须转置矩阵 并确保转换qreal 可以是float or double取决于底层系统 GLfloat 没有一个函数可以
  • 在sql server中存储图像

    我正在尝试将数据库设计放在一起来存储图像 你们中的许多人可能有过设计数据库来存储图像的经验以及与之相关的挑战 数据库最终可能会存储数十万张图像 我计划使用 SQL Server 2008 数据库和实体框架 计划使用 FILESTREAM 数
  • MPI_Allgather 和 MPI_Allgatherv 之间的区别

    有什么区别MPI Allgather and MPI Allgatherv 来自MPI标准 http www mpi forum org docs MPI GATHERV 扩展了功能 MPI GATHER 通过允许变化 每个进程的数据计数
  • 离屏和嵌入式浏览器比较(用于游戏)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们一直在考虑为我们的 C 应用程序添加良好的浏览器支持 这个问题是关于独立于 GUI 的浏览器库 因为
  • 如何在类扩展中添加静态(存储)属性来创建单例? (迅速)

    我想将这段代码转换为 Swift 这里的 Objective C 代码正在创建一个单例对象 如果我可以这样描述的话 我可以用调度一次 t来转换它 但我想使用一种更优雅的方式 应该类似于 静态让捆绑 NSBundle But 静态让捆绑 NS
  • C# WebBrowser 控件——AJAX 之后获取文档元素?

    我正在编写一个应用程序 它使用 WebBrowser 控件来查看可通过添加新内容 元素的 AJAX 进行更改的 Web 内容 我似乎无法以我尝试过的任何方式获得新元素 BrowserCtl DocumentText 没有最新的页面 当然它也
  • Zend 可重用小部件/插件/迷你应用程序?

    我是 Zend 框架的新手 并试图获得一些有关代码可重用性的见解 我确实了解模块 但对于哪些功能应该进入模块以及哪些功能不应该进入模块似乎存在一些不确定性 我正在努力实现的目标 1 拥有可重用的小程序 小部件 插件 无论您如何称呼它们 可以
  • TransitionFromView 删除之前的视图

    我在应用程序中的视图之间转换时使用 TransitionfromView 时遇到问题 Setup 这是视图控制器的基本设置 它有两个视图 一个 MKMapView 和一个 UITableView 当按下切换按钮时 应该在地图和表格之间交替视
  • 使用 Bundler 安装 Gems == 大问题

    如果我跑bundle install 一切都会过去 我重新启动 nginx 当我访问该网站时 我看到乘客错误如下 git github com spree spree git at master is not checked out Ple
  • 使用 JavaScript 在特定延迟后执行脚本

    有没有类似 jQuery 的 JavaScript 方法delay or wait 将脚本的执行延迟特定的时间 只是为了补充其他人所说的内容setTimeout 如果以后想调用带参数的函数 就需要设置一些匿名函数调用 您需要将该函数作为参数
  • Golang 的 Codeclimate 测试覆盖率格式化程序

    无处可去Codeclimate 文档 https docs codeclimate com v1 0 docs setting up test coverage section supported languages and formats
  • 控制模板可见性触发器

    我对下面的按钮样式所做的只是让按钮仅在 IsMouseOver 或 IsPressed 时可见 它的编写方式甚至无法编译 找不到 Glyph 如何清理这个问题 直到 IsMoueOver 时按钮可见 Cheers Berryl