在WPF中,有没有办法将两种样式组合为一个控件?

2023-11-24

我的情况如下。

我有一个 App.xaml,其中包含 ListView 的样式,如下所示:

<Style x:Key="{x:Type ListViewItem}" TargetType="ListViewItem">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
              ...

但是,我想将一些样式添加到另一个 xaml 中,让我们在 Window.xaml 中这样说:

 <ListView AlternationCount="2" Background="#FFECECEC">
    <ListView.Resources>
        <Style x:Key="{x:Type ListViewItem}" TargetType="{x:Type ListViewItem}">
            <EventSetter Event="PreviewMouseDoubleClick" Handler="OnPreviewMouseDoubleClick" />
        </Style>
    </ListView.Resources>
 </ListView>

因此,我想要做的是将 App.xaml 中的基本设计的样式定义为默认样式。 然后,添加一些修改,例如添加上下文菜单、添加每个 xaml 中的事件。

但是,通过上述实现,App.xaml 中定义的 Style 将被 Window.xaml 中定义的 Style 覆盖。

有没有什么办法可以解决这个问题并实现它?


款式有BasedOn财产:

<Style x:Key="Style1">
...
</Style>

<Style x:Key="Style2" BasedOn="{StaticResource Style1}">
...
</Style>

Btw: <Style x:Key="{x:Type ListViewItem}"似乎有点奇怪。这x:Key应该是 xaml 字典中的唯一键 - 通常是字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在WPF中,有没有办法将两种样式组合为一个控件? 的相关文章

  • 如何设置和更改 WPF 中的文化

    我有一个 NET 4 0 WPF 应用程序 用户可以在其中更改语言 文化 我只是让用户选择一种语言 创建相应的 CultureInfo 并设置 Thread CurrentThread CurrentCulture cultureInfo
  • 双击数据网格时出现问题

    我的 C 代码中的数据网格有以下内容
  • 如何动态更改 WPF 中 DataGridTextColumn 绑定上的转换器?

    我真的不明白 WPF 和 XAML 并且继承了一些写得很糟糕的代码 所以我可能会扼杀它 但这里是 我继承了一个绑定到 Person 对象列表 在代码后面 的 DataGrid 其中必要的 DataGridTextColumn 在 XAML
  • WPF 找不到某些字体

    为什么会这样Media Fonts找不到 Arial Rounded MT Bold foreach var f in System Windows Media Fonts SystemFontFamilies if f Source Ar
  • WPF DataGrid 双向绑定

    我有财产UserSet其中包含来自ObservableCollection
  • 获取登录用户的 AppData\Local 文件夹

    我目前正在使用 Environment GetFolderPath Environment SpecialFolder LocalApplicationData 检索当前用户的AppData Local小路 该程序需要提升的权限 并且在标准
  • WPF 通过宽高比调整 UserControl 的大小

    我有一个 UserControl 并且该 UserControl 必须根据宽高比调整大小 这意味着 宽度 高度 2 1 目前我正在使用这段代码 protected override Size ArrangeOverride Size arr
  • WinRT 中的 ComposableAttribute 是什么?

    我试图了解 WinRT 的一些较低级别的部分是如何工作的 我遇到了ComposableAttribute这可能是我需要的关键 但是 那文档 http msdn microsoft com en us library windows apps
  • “该类型不包含任何可访问的构造函数” - 具有无参数构造函数

    我正在尝试加载一个类作为静态资源
  • Windows 更新 KB4040972/73 导致 WPF 类出现黑色图像

    我有一个依赖于深度缩放图像 从 PNG 转换为各种比例的 JPG 金字塔 的应用程序 我们使用 DeepZoomTools dll 来实现 这依赖于PresentationCore dll 多年来一直运行良好 推出 KB4040972 和
  • 给 MVVM 中的 View 一些命令

    假设我有一些用户控制权 用户控件有一些子窗口 用户控制用户想要关闭某种类型的子窗口 用户控制代码后面有一个方法 public void CloseChildWindows ChildWindowType type 但我无法调用此方法 因为我
  • ListView选择单个项目,wpf

    我有一个列表视图 它的项目源是一个列表 我希望用户只选择一项 当我将列表视图的 SelectionMode 设置为 single 时 用户仍然可以选择多个项目 并且列表视图似乎变得疯狂并选择用户未选择的项目 看起来很奇怪 任何人都知道可能是
  • 打印 WPF 位图图像

    打印位图图像的最佳方法是什么 我有 System Drawing 背景 所以我正在考虑将其转换为位图 然后打印它 但我认为可能有更好的方法 Thanks 根据 Drew 的回答 最好测量并安排传递给 PrintVisual 方法的容器 这将
  • 快速变化的集合 MVVM WPF - 高 CPU 使用率和 UI 几乎冻结

    我正在开发一个带有数据网格的应用程序 它显示某些正在运行的 Windows 进程 在我的示例 Chrome 进程中 当选中复选框时 数据网格会加载进程 要求 显示每个进程的名称 内存使用情况 私有工作集 的 实时 信息 就像在 Window
  • 文本框的自定义日期格式

    有关的 将3个文本框绑定在一起 相同的日期时间不同的格式 https stackoverflow com questions 35581427 binding 3 textboxes together same datetime diffe
  • WP7中加粗的ProgressBar,怎么样?

    我正在制作一个应用程序 它有一个计数器和一个代表剩余时间的进度条 因此如果计数器达到 50 则进度条值为 50 到目前为止一切顺利 我制作了一个计数器总计的进度条动画并开始 我的问题是 如何使进度条变粗 线条本身太小 我的应用程序的 主要吸
  • 如何检查应用程序的另一个实例是否正在运行[重复]

    这个问题在这里已经有答案了 有人可以展示如何检查程序的另一个实例 例如 test exe 是否正在运行 如果是 则停止加载应用程序 如果存在该实例 想要一些严肃的代码吗 这里是 var exists System Diagnostics P
  • 如何在选项卡控件对象中禁用选项卡换行

    我正在 WPF C 中设计 GUI 并且使用Tab Control目的 我的tab control将包含很多选项卡 我想知道如何禁用对象的默认 包装 行为 基本上相反this https stackoverflow com question
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok

随机推荐