MahApps.Metro 图​​标未显示

2024-03-13

我正在尝试使用 MahApps.Metro 0.13.1.0 在窗口标题栏中添加“刷新”按钮。

我的 App.xaml 是这样的:

<Application x:Class="VersionSwitcher.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="Views/MainWindow.xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             d1p1:Ignorable="d"
             xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
                <ResourceDictionary Source="/Resources/Icons.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" xmlns:vm="clr-namespace:VersionSwitcher.ViewModel" />
        </ResourceDictionary>
    </Application.Resources>
</Application>

然后在我的 MainWindow.xaml 中:

<Controls:MetroWindow.WindowCommands>
    <Controls:WindowCommands>
        <Button ToolTip="{x:Static p:Resources.Button_Refresh}"
                Style="{DynamicResource MetroCircleButtonStyle}" Width="30" Height="30">
                <Rectangle Fill="Black">
                    <Rectangle.OpacityMask>
                        <VisualBrush Stretch="Fill"
                                     Visual="{DynamicResource appbar_refresh}" />
                    </Rectangle.OpacityMask>
                </Rectangle>
        </Button>
    </Controls:WindowCommands>
</Controls:MetroWindow.WindowCommands>

我在标题栏中看到一个灰色圆圈,但没有图标!任何图标(来自 Resources/Icons.xaml)都执行相同的操作。

如果图标放置在窗口内容而不是标题栏中,它会执行相同的操作。

我错过了什么?

Thanks !

Update

我发现设置矩形的宽度和高度会显示图标。我必须做什么才能始终填充按钮?


你看不到它是因为Rectangle其大小为 0ActualWidth and ActualHeight你可以通过查看Snoop http://snoopwpf.codeplex.com/

如果您在评论中提到的对 WPF 不太了解,请先熟悉 Snoop。很棒的工具,可以让您免去很多令人头疼的时刻:)

所以用简单的英语来说,我们添加一个Rectangle as the Content of a Button。现在按钮有一些尺寸。然而,矩形不会,因此最终为 0。如果它是一些文本,它将获得隐式大小。

因此,要对其进行排序,请为矩形指定合适的宽度/高度。

如果您希望矩形的大小与按钮的大小相同,则可以使用宽度和高度的相对源绑定来从按钮获取它。然而,在您的情况下,它是一个已经使用椭圆的样式按钮,因此需要一些填充。

来自 github 的 MahApps.Metro:

ButtonsExample.xaml https://github.com/MahApps/MahApps.Metro/blob/master/samples/MetroDemo/ExampleViews/ButtonsExample.xaml#l129-l141

显示他们建议的方法:(显式大小小于父按钮的内容)

<Button Width="50"
        Height="50"
        Margin="0, 10, 0, 0"
        Style="{DynamicResource MetroCircleButtonStyle}">
    <Rectangle Width="20"
                Height="20"
                Fill="{Binding Path=Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Button}}}">
        <Rectangle.OpacityMask>
            <VisualBrush Stretch="Fill"
                          Visual="{DynamicResource appbar_city}" />
        </Rectangle.OpacityMask>
    </Rectangle>
</Button>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MahApps.Metro 图​​标未显示 的相关文章

  • 将多个实时视频流拉入 WPF

    我想创建一个应用程序 将由同轴电缆 hdmi 或其他标准提供的多个实时视频源拉入 WPF 中进行操作 即应用一些转换或像素着色器 然后将其输出到监视器 开始使用这个应用程序时我会考虑什么 有没有任何硬件可以让事情变得更容易 如果您通过同轴电
  • WPF 中处理系统关闭

    如何在 WPF 中重写 WndProc 当我的窗口关闭时 我尝试检查我正在使用的文件是否被修改 如果是 我必须提示用户 你想保存更改吗 消息 然后关闭正在使用的文件和窗口 但是 当我的窗口仍然打开时 我无法处理用户重新启动 关闭 注销的情况
  • WPF DataGrid - 在每行末尾添加按钮

    我想在数据网格的每一行的末尾添加一个按钮 我找到了以下 xaml 但它将按钮添加到开头 有人知道如何在所有数据绑定列之后添加它吗 这会将按钮添加到开头而不是末尾
  • 将 MahApps 图标与 ContextMenu 结合使用

    我正在使用 MahApps Metro UI 工具包编写 WPF 应用程序 http mahapps com guides quick start html http mahapps com guides quick start html
  • 如何使用 MVVM 打开和关闭新 Windows?

    对于 MVVM 和 WPF 什么是处理打开和关闭新窗口和对话框的好 直接方法 打开和关闭应该由 ViewModel 驱动 对吗 但 ViewModel 不应该知道视图 我通常为此使用接口 例如 如果我想在单独的窗口中编辑记录 我有一个接口
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • RelayCommand 未在 MenuItem 单击 WPF MVVM 上触发

    我的 WPF 表单上有一个运行导入例程的菜单项 我已将命令属性绑定到视图模型中的 ICommand 属性 但由于某种原因该方法不会触发 这是 xaml menu height 21 menu
  • WPF Datagrid 循环/选择具有特定属性的单元格

    全新的 WPF 对 WinForms 非常熟悉 这可能会让过渡变得更加困难 我正在尝试将旧 WinForms 项目中的一些功能移植到 WPF 中作为学习体验 目标是在 DataGrid 中查找与 TextBox 中的字符串匹配的单元格值 我
  • 如何在MVVM中管理多个窗口

    我知道有几个与此类似的问题 但我还没有找到明确的答案 我正在尝试深入研究 MVVM 并尽可能保持纯粹 但不确定如何在坚持模式的同时启动 关闭窗口 我最初的想法是向 ViewModel 发送数据绑定命令 触发代码来启动一个新视图 然后通过 X
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 调用线程无法访问该对象,因为另一个线程拥有它

    我已经阅读了很多关于此错误的帖子 但我不明白如何在我的解决方案中解决它 我有一个进度条对话框 其中包含一些逻辑 通过按钮单击从 MainFrame 调用 void OnBtnClick object sender RoutedEventAr
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 打印大型 WPF 用户控件

    我有一个巨大的数据 我想使用 WPF 打印 我发现WPF提供了一个PrintDialog PrintVisual用于打印派生的任何 WPF 控件的方法Visual class PrintVisual只会打印一页 因此我需要缩放控件以适合页面
  • WPF - 位图效果上的编程绑定

    我希望能够以编程方式将一些数据绑定到 a 上的依赖属性位图效果 对于像 TextBlock 这样的 FrameworkElement 有一个 SetBinding 方法 您可以通过编程方式执行这些绑定 例如 myTextBlock SetB
  • 如何从 XAML 设置 WPF 用户控件属性?

    我试图从 XAML 设置同一用户控件的多个实例的 fill 属性 以便区分它们 我在控件的 C 代码隐藏中使用依赖属性 并在实例化控件时在 XAML 中引用该属性 这是我尝试过的简化示例 首先是用户控件的 XAML
  • 如何销毁或分离 CollectionView

    我观察到 WPF ItemsControls 的奇怪行为 如果将 ItemsSource 设置为实现INotifyCollectionChanged然后设置ItemsSource为空 则CollectionView创建它是为了向 Items
  • WPF - 路径几何...有没有办法绑定数据属性?

    我有一个ControlTemplate作为 气泡 弹出窗口AdornerLayer给定的控制 它工作正常 但我需要能够计算它应该显示的位置 中间 底部 代替
  • 如何在控件内引用用户控件主机的 StaticResource?

    我有以下内容StaticResource in my Window Resources
  • 即使光标位于画布之外也会调用 MouseMove 事件

    我不知道我的代码或 WPF 是否有问题 但问题是 我想创建一个小程序 您可以在其中用光标在画布上绘图 我有一个简单的 WPF 窗口
  • 命令绑定问题。如何启用命令按钮

    我的代码在这里 gt gt public class Player INotifyPropertyChanging string addressBar public string Url get return addressBar set

随机推荐

  • 拖放文本视图

    我必须拖动 但无法完美拖动它 问题是 1 我必须拖动两到三次才能将其带到所需的位置 因此 textview 不能顺利跟随手指移动 2 如果我向上移动文本视图 它只会向下移动 我提供了触摸事件上textview的代码 请帮忙 提前致谢 fin
  • 如何使用 Unix 套接字对来通信 Rust 和 Ruby 进程

    我正在尝试使用 Unix 套接字对将 Rust 进程与 Ruby 子进程进行通信 我只使用 Ruby 尝试过同样的操作 它可以工作 但我似乎无法让它与 Rust 一起工作 我尝试将 rust socket 文件描述符传递给Ruby脚本 将
  • python 中的聚合时间序列

    我们如何按小时或分钟粒度聚合时间序列 如果我有如下所示的时间序列 那么我希望这些值按小时聚合 pandas 是否支持它 或者是否有一种在 python 中实现它的好方法 timestamp value 2012 04 30T22 25 31
  • 应用内购买产品 ID 是否必须以反向 DNS 开头?

    应用内购买产品 ID 是否必须以反向 DNS 开头 例如com mycompany My Awesome Game Level Pack 1或者它可以只是独立的吗Level Pack 1 产品 ID 可以是您想要的任何内容 但建议您遵循反向
  • 使用 rma.glmm 计算估计值:当 2 个估计值相同时出错

    我正在使用 rma glmm 来计算两项不同研究的元比例 例如 6 个月时出现 xi 和未出现 xii 不良事件的个体比例 library metafor 6 months study c 1 2 ni c 41 19 xi c 26 14
  • 浏览器后退按钮未更新页面

    我使用 jquery 单击事件在井号标记后设置 URL URL 设置正确 但当我使用浏览器后退按钮时 它不会将我带到上一页 在我的点击事件之前 URL 如下所示 http example com menu php home 我的点击事件如下
  • 如何使用 JavaZOOM JLayer 库播放/暂停 mp3 文件?

    如何向以下代码添加播放 暂停按钮 import javazoom jl player Player try FileInputStream fis new FileInputStream mysong mp3 Player playMP3
  • 更新至 Safari 12.0 - Java 插件不再列出

    更新到后Safari 版本 12 0 下面的Java插件Safari gt 首选项 gt 网站 gt 插件不再列出 因此 Java Applet 不能在不安全模式下运行 有没有办法启用 Java 插件或运行 Java 小程序 在 macOS
  • Pandas:条件组特定计算

    假设我有一个带有键 例如客户 ID 和两个数字列 C1 和 C2 的表 我想按键 客户 对行进行分组 并在其列上运行一些聚合器 例如 sum 和 Mean 在计算组聚合器之后 我想将结果分配回 DataFrame 中的每个客户行 因为一些客
  • ReactJS HREF 导致状态丢失

    我有一个名为 EnrollForm 的父组件 带有一个 BrowserRouter 该组件路由到不同的子组件 这些子组件是我的整个 EnrollForm 的页面 每次填写子组件页面并单击下一个 btn 时 所有表单字段都会保存到子组件状态
  • 多项式评估的生成方法

    我试图想出一种优雅的方法来处理一些生成的多项式 对于这个问题 我们将 专门 关注以下情况 order是生成的参数n三阶多项式 其中 n order 1 i是 0 n 范围内的整数参数 多项式在 x j 处有零点 其中 j 1 n 且 j i
  • 在 Perl 6 中查找上周五的日期?

    我想生成一个从周一到周四的上周五结束的序列 如果该序列从周六和周日开始 则生成上周五结束的序列 也就是说 假设今天是2018 05 09 那么上周五是2018 05 04 如果今天是2018 05 12 那么上周五是also 2018 05
  • KMP 字符串搜索算法的最坏情况是什么? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 谁能建议我一个最坏情况的 文本字符串
  • 如何删除我不小心发布到 go.dev 的包?

    我不小心将一个包发布到了 go dev 网站 谁能告诉我如何删除它 https pkg go dev github com Nksama Random quotes https pkg go dev github com Nksama Ra
  • 如何将一行中的多个值拆分为单独的行?

    我想将一行中的多个值拆分为单独的行sap hanasql 桌子 id name 1 kabil arasan 但我想要这样的输出 id name 1 kabil 1 arasan 尽量避免列中出现类似 csv 的数据 例如在 ETL 过程中
  • 无法使用 Android Studio、Windows 7 连接到 Samsung Galaxy Tab S

    我有一台漂亮的新三星 Galaxy Tab S 我正在尝试将其与 Android Studio 连接 我已在平板电脑上启用 USB 调试 并通过执行 SAMSUNG USB Driver for Mobile Phones v1 5 45
  • 无法在 Firefox 中设置 IFrame 的 document.body.innerHTML

    我一直在寻找一种跨浏览器的方法来以编程方式设置 IFrame 的innerHTML 如http roneiv wordpress com 2008 01 18 get the content of an iframe in javascri
  • 有没有办法按字符串内的数字对字符串列表进行排序?

    有没有一种方法可以对类似的内容进行排序 List
  • DbContext 在其生命周期中是否保持打开的连接?

    问题很清楚 做DbContext持有打开连接在其生命周期内 EF 核心怎么样 正如其他人所指出的 不 它不会 除非您手动打开连接并将其传递给 DbContext 构造函数 具体的详细答案可以在这里找到https stackoverflow
  • MahApps.Metro 图​​标未显示

    我正在尝试使用 MahApps Metro 0 13 1 0 在窗口标题栏中添加 刷新 按钮 我的 App xaml 是这样的