WPF 按钮图标被镜像,为什么?

2024-01-01

当按如下方式定义图像时,此按钮看起来不错(请参见屏幕截图)。请注意,带有字母“T”的盾形图标已正确显示。

<Button Command="w:MainWindow.BrowseTorrentSite">
    <StackPanel>
        <Image Source="../icons/kickasstorrent.png" />
    </StackPanel>
</Button>

当我想依赖按钮启用状态时,图标会被镜像。

<StackPanel 
      Orientation="Horizontal" 
      FlowDirection="RightToLeft">
        <Button 
            x:Name="KatButton" 
            Command="w:MainWindow.BrowseTorrentSite">
            <StackPanel>
                <Image>
                    <Image.Style>
                        <Style TargetType="Image">
                            <Style.Triggers>
                                <DataTrigger
                                    Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}}" 
                                    Value="True">

                                    <Setter Property="Source" Value="../icons/kickasstorrent.png" />
                                </DataTrigger>
                                <DataTrigger 
                                    Binding="{Binding Path=IsEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}}" 
                                    Value="False">

                                    <Setter Property="Source" Value="../icons/kickasstorrent_disabled.png" />
                                </DataTrigger>
                            </Style.Triggers>
                        </Style>
                    </Image.Style>
                </Image>
            </StackPanel>
        </Button>
</StackPanel>

请注意,带有字母“T”的盾形图标现在已镜像。

什么负责镜像图标?

如果有人有以任何可能的方式调试此问题的提示,请随时为我指出正确的方向!


问题出在父 StackPanel 中。如果StackPanel正在定义FlowDirection从右到左,Image定义继承了此属性,这会导致图标翻转。

要解决此问题,请在图像本身上重新定义从左到右。

    <StackPanel 
        Orientation="Horizontal" 
        FlowDirection="RightToLeft">
        <Button>
            <Image FlowDirection="LeftToRight">
                <Image.Style>
                    <!-- etc etc -->
                </Image.Style>
            </Image>
       </Button>
    </StackPanel>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 按钮图标被镜像,为什么? 的相关文章

  • 如何在不监听框架控件中定义的任何鼠标事件的情况下检测鼠标单击?

    是否可以在不侦听框架控件中定义的任何鼠标事件的情况下检测鼠标单击 我的意思是 我不想编写如下代码 control MouseLeftButtonDown this HandleMouseLeftButtonDown 但我想知道用户是否点击屏
  • WPF - 在样式中使用 ControlTemplate 资源

    创建样式时 是否可以将 ControlTemplate 属性设置为先前定义的资源 例如 如果我在 ResourceDictionary 中有以下内容
  • 使用 TemplateColumns 将 WPF DataGrid 绑定到 DataTable

    我已经尝试了一切但一无所获 所以我希望有人能给我一个顿悟的时刻 我根本无法获得成功提取数据网格中数据的绑定 我有一个包含 MyDataType 的多列的 DataTable public class MyData string nameDa
  • 从模板绑定到 viewmodel 的属性

    我为我的 GameViewModel 创建了一个视图 我有一些像这样的xaml
  • PyQt/PySide 中有默认图标吗?

    我正在阅读 PySide 上的教程 我在想 我是否需要为每件事找到自己的图标 或者是否有某种方法可以使用一些内置图标 这样 如果我希望我的小 GUI 在另一个桌面环境上运行 我就不需要找到一套全新的图标 您需要的是 Pyside QIcon
  • 如何在Xamarin.Forms中将多个页面的BindingContext设置为同一个ViewModel?

    我是 Xamarin Forms 新手 我想使用 MVVM 模式和 XAML 创建一个跨平台应用程序 在我的表单项目 pcl 中 我想设置绑定上下文 of my MainPage以及将来的多个页面到同一个 ViewModel 这可能吗 让我
  • WPF 组合框如果只有 1 项则自动选择

    我有一个组合框 我绑定到一个可观察的集合 它会发生变化 根据选择的公司 并且大量公司将有一个帐户 项目 因此我想知道制作组合框的最佳方法是什么如果 ItemsSource 中只有 1 个项目 则设置 SelectedItem 否则将其保留为
  • 带有 ObservableCollection 和动态过滤器的 Silverlight ListBox

    假设我有这门课 public class MyData public bool IsActive get set public String Data1 get set public String Data2 get set and an
  • WPF - 检测鼠标按下一段时间

    检测鼠标按钮何时在特定元素上按住特定时间段的最佳方法是什么 感谢您的提示 我创建了一个附加属性以避免任何代码隐藏 using System using System Windows using System Windows Threadin
  • 如何在 WPF 中实现虚线或点线边框?

    我有一个ListViewItem我正在申请Style到 我想把灰色虚线作为底部Border 我怎样才能在 WPF 中做到这一点 我只能看到纯色画笔 这在我们的应用程序中效果很好 允许我们使用真正的边框而不是乱用矩形
  • WPF 元素宿主内存泄漏

    我在 Windows 窗体上使用元素主机时遇到奇怪的内存泄漏 我有一个主窗体 它打开另一个窗体 该窗体上只有 elementhost 控件 此时 它没有 wpf 控件子控件 只能打开 1 个主机表单 每次我打开窗体时 应用程序内存都会增加2
  • 滚动 X 轴绘图区域 - Silverlight 柱系列

    我有一个工作正常的柱形系列图表 我有一个需要添加的功能 我希望水平滚动能够启用到 x 轴的绘图区域 这是屏幕截图 如果您看到屏幕截图 我有 6 个项目 并且由于项目数量较多 条形图非常细 所以假设如果我有 20 个项目 那么条形图将根本不可
  • 将 WPF 快捷键绑定到 ViewModel 中的命令

    我有一个使用 MVVM 模式的 WPF 应用程序 将按钮连接到 VM 非常简单 因为它们实现了 ICommand 我有一个工作原理类似的上下文菜单 下一步是为上下文菜单创建快捷键 我不知道如何让快捷键调用命令 这是一个例子
  • 获取代码中的绑定结果

    我可能正在以错误的方式寻找这个 但是 有没有办法通过代码获取绑定的结果值 可能是一些显而易见的东西 但我就是找不到它 您只需致电ProvideValue的绑定方法 困难的部分是你需要通过有效的IServiceProvider到方法 编辑 实
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 如何在Wpf中的用户控件中调用MahApps Metro对话框

    当我尝试调用 MahApps Metro 对话框时 我在传递值时遇到错误 在传递参数时调用对话框控制时我需要传递 Metrowindow 参数 但我需要在用户控件中调用它 下面是当我需要对话框控制时我将调用的方法 public async
  • 列表视图上的 TextBlock:如何忽略 TextBlock 中的点击并让列表视图处理它们

    我有一个显示大量信息的列表视图 但是当它为空时 我想在其上覆盖一个文本块 上面写着 没有要显示的信息 或 bla bla bla 添加信息 列表视图设置为响应鼠标单击 但现在如果我单击文本块 这些事件将路由到文本块 我怎样才能让这些事件转到
  • WPF HierarchicalDataTemplate 不会在属性更改时更新 ItemsSource

    这是一些 XAML
  • 按钮的样式看起来像应用栏按钮

    是否可以通过更改样式来将 xaml 按钮标记设置为看起来像应用程序栏按钮 以及如何才能做到这一点 希望这可以帮助
  • 使 DataTemplate 可混合

    如何为 ViewModel 制作可混合的数据模板 可在表达式混合中设计 当我转到资源并尝试直接编辑数据模板时 我在绘图板上看到的只是一个空白矩形 这是因为 DataTemplate 没有绑定到任何东西 当然 我可以创建一个 UserCont

随机推荐

  • 更新容器内的 WordPress。没有 FTP 访问权限

    我安装了一个 WordPress 网站wordpressDocker 镜像 然后安装我的主题 一切正常 但是当我稍后想要更新 Wordpress 时 我收到以下消息 要执行请求的操作 WordPress 需要访问您的 Web 服务器 请输入
  • 位置更新自动暂停 iOS

    我正在使用phonegap 构建一个iOS 应用程序 当应用程序在后台运行时 我试图让 iOS 将其当前位置更新到我的应用程序 我已经注册了位置更新后台模式 但它不可靠 经过一番研究 我认为 iOS 会自动暂停位置更新 CLLocation
  • 将 Proguard 用于 Scala AWS Lambda

    我有一个关于 proguard 与 scala aws lambda 函数一起使用的问题 我创建了一个非常简单的 aws lambda 函数 如下所示 package example import scala collection Java
  • Google 容器注册表权限

    我正在尝试将 docker 映像推送到 GCP 但仍然收到此错误 unauthorized You don t have the needed permissions to perform this operation and you ma
  • 访问 DataReader 中的特定行

    我有一个数据读取器 可以在 js 轮播中显示比赛周列表 我需要能够添加一个 if 语句来更改当前游戏周的 div 类 这是我当前的代码 if dReader HasRows while dReader Read gameweekList T
  • 当 cfhttp 上 throwonerror=true 时如何获取 cfhttp.filecontent ?

    我使用以下命令进行 REST 服务调用cfhttp与throwonerror属性设置为 true 当我使用 try catch 语句捕获错误时 我似乎找不到一种方法来输出 REST 服务调用尝试返回的错误 该错误将驻留在cfhttp fil
  • 如何从 C# 应用程序调用 docker run

    我有一个 WPF 应用程序 在处理文件时需要使用 docker 进程 docker 容器构建在盒子上 目前在使用 WPF 应用程序处理文件后 用户必须启动命令提示符并输入 docker run it rm v folderdedirect
  • 尝试一下,catch似乎不起作用

    我有以下代码 我认为它可以让我捕获错误 而不是生成错误 写出 发生错误 不幸的是 它仍然显示错误 无法重新启动计算机 访问被拒绝 我知道为什么会发生这种情况 但我希望能够捕获错误并重新格式化它 我究竟做错了什么 try Restart Co
  • 使用 Hibernate 和 JPA 映射 Map

    我尝试以下映射 ElementCollection private Map
  • 使用 iTextSharp 从现有 PDF 中读取 XMP

    如何使用 iTextSharp 从现有 PDF 文件中读取 XMP 我对 itextSharp 非常无知 但这对我来说很有效 PdfReader pdf new PdfReader fileName string metadataXml S
  • HTML + Javascript 渲染器输出 HTML 或纯文本?

    如果我使用 String plain Html fromHtml html toString 渲染简单的 html 其中包含 any plain vanila HTML goes here 一切都美好而花花公子 但是 如果该页面包含大量 J
  • Java 如何使 JFrame 作为最大化窗口启动

    我想知道如何使 java JFrame 最大化 我不希望它是全屏的 周围没有窗口 我只是希望它像普通程序 例如网络浏览器 一样启动 我已经知道如何使用 Dimension screenSize Toolkit getDefaultToolk
  • Safari - 当选项卡位于后台时,HTML5 音频不会播放

    我有一个反应应用程序 它使用反应声音 基本上是 HTML5 音频 在触发新通知时播放声音 我希望当选项卡在 Safari 中处于后台时播放此声音 但这似乎不起作用 当选项卡位于前台时 声音会播放 有谁知道这个问题的解决方法 None
  • Chrome 中的 .blur 和 .onblur

    更新了没用 http jsfiddle net xvepL 4 http jsfiddle net xvepL 4 让我有点抓狂 Chrome 不使用 blur 仅适用于 onblur 但其他浏览器使用 blur 有没有办法解决这个问题 这
  • 自动热键 3 次点击 = 音量静音

    在 autohotkey 中 我试图做到这一点 以便当我按下鼠标左键 3 次并延迟 10 毫秒它变成音量静音 LButton if Send Volume Mute else Send LButton Return Use A TickCo
  • Pytest 仅运行具有特定标记属性的测试

    我在用着 pytest mark为了唯一地标识特定的测试 因此我创建了自定义标记 pytest mark key 我这样使用它 pytest mark key test 001 def test simple self self passi
  • 在 PHP 中使用heredoc有什么好处? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jquery 如果单选按钮被选中

    可能的重复 检查特定单选按钮是否已选中 https stackoverflow com questions 2195125 check of specific radio button is checked 我目前有这 2 个单选按钮 以便
  • nginx 和带有代理传递的尾部斜杠

    我对 nginx 1 4 1 使用以下配置 server listen 8000 server name correct name gr location test register proxy set header X Forwarded
  • WPF 按钮图标被镜像,为什么?

    当按如下方式定义图像时 此按钮看起来不错 请参见屏幕截图 请注意 带有字母 T 的盾形图标已正确显示