中的 ListBoxItem 样式?

2024-01-08

我可以放一个xamlStyle for ListBoxItem in <ListBox.Resources> or in <ListBox.ItemContainerStyle>。参见代码。
问题是:有什么区别,我应该选择什么?

<ListBox.Resources>
    <Style TargetType="ListBoxItem">
        <Setter Property="Canvas.Top" Value="{Binding Top}"/>
        <Setter Property="Canvas.Left" Value="{Binding Left}"/>
        <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ListBox.Resources>

OR:

<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Setter Property="Canvas.Top" Value="{Binding Top}"/>
        <Setter Property="Canvas.Left" Value="{Binding Left}"/>
        <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="Padding" Value="0"/>
    </Style>
</ListBox.ItemContainerStyle>

我接受了一个答案,但请注意并思考这个奇怪的症状:
无论哪种方式给了我这个奇怪的数据绑定警告:无法找到引用“RelativeSource FindAncestor,AncestorType='System.Windows.Controls.ItemsControl',AncestorLevel='1”的绑定源。 BindingExpression:Path=Horizo​​ntalContentAlignment; DataItem=null .... 等等
这是隐藏在系统 Aero 样式中某处的绑定,它不是我的。
仅当我使用两种风格这个警告消失了!


ItemContainerStyle是执行此操作的正确方法,因为它是显式设置的,因此 wpf 不需要始终查找样式可能在的位置。它更快更好。这就是该属性存在的原因。

When ItemContainerStyle未设置 WPF 将在以下位置寻找样式ListBox.Resources or Window.Resources or Application.Resources。这对性能不利。

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

中的 ListBoxItem 样式? 的相关文章

  • MVVM ViewModel 很多属性

    我是 MVVM 新手 正在开发一个应用程序 我有一个包含很多属性的表单视图 大约 50 个 我不能将它们分离到用户控件中 因为这会破坏 mvvm 原则 我无法将它们分成模型 因为它们包含逻辑 属性更改 错误更改这些都不是 poco 类 并且
  • 在 WPF 媒体元素中连续重播视频

    我有一个在媒体元素中播放的视频文件 我需要继续播放 因此我尝试了 me play me MediaEnded new RoutedEventHandler me MediaEnded 使用此事件方法 loop to keep video p
  • WPF XAML 定义的 MenuItem 重用开始工作,然后消失

    以下简单代码尝试在两个单独的菜单上重用 Window Resources 中定义的 MenuItem
  • 菜单项内的 Windows 10 UWP 应用菜单弹出菜单

    是否可以在菜单弹出项目内添加菜单弹出项目
  • MVVM 创建 ViewModel

    有人可以向我解释一下如何为 MVVM 模式创建 ViewModel 我试图理解这里的教程 http msdn microsoft com en us magazine dd419663 aspx http msdn microsoft co
  • 获取程序集中所有资源的列表

    我有一个文件夹Resources并想要获得一份包含所有内容的列表paths 如果我将它们设置为embedded resource 我可以通过 var resources Assembly GetExecutingAssembly GetMa
  • WPF:在关闭事件触发之前,不会提交对具有焦点的文本框的更改

    我有一个用于编辑数据库信息的 WPF 窗口 它使用实体框架对象表示 当用户关闭窗口时 我想在 Closing 事件中注意到信息是否已更改 并显示一个消息框 提供将更改保存到数据库的信息 不幸的是 在编辑失去焦点之前 对当前焦点编辑的更改不会
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • WPF Treeview,如何更改缩进

    我的树视图基本上有 文件夹 节点 以及不包含其他项目的项目下面的一层 因此 不需要用于展开 折叠图标的空间 在第 2 层 我可以放弃这个图标空间从而减少缩进吗 项目 在示例 机场 中 应向左移动一些像素 重要提示 基本上是寻找代码解决方案
  • 为什么在 Windows 中缩放 WPF 应用程序时会看到像素?

    我使用 WPF 为随机应用程序开发了一个 GUI 我在应用程序窗口上放置了一堆开箱即用的 WPF 控件 我没有定制任何东西 没有使用位图等 在 Windows 7 中运行我的应用程序并使用放大镜应用程序进行缩放时 Win key Plus
  • WPF:鼠标按下时不会触发鼠标离开事件

    我遇到鼠标进入 离开事件的问题 当按下鼠标按钮并按住光标在控件内 然后光标以足够快的速度移出控件时 此事件不会触发 你能告诉我为什么会这样吗 有什么方法可以正确获取这些事件吗 请检查示例项目以查看其实际效果 https www dropbo
  • GridSplitter 从右侧调整大小 - 奇怪的行为

    使用 Kaxaml 从左侧调整大小可以按预期工作
  • 如何获取 WinRT 应用程序中字体的大小(以像素为单位)?

    正如标题所示 在 NET 4 5 中 我们有一个字体类 可以为您提供像素高度 但在 WinRT 中又如何呢 我可以使用任何 API 来获取它使用的像素吗 由于 Windows 应用商店应用程序的 NET API 中甚至不存在 Formatt
  • 如何在 Visual Studio 2008 中设置默认 XAML 视图

    在 Visual Studio 2008 中 当您向 WPF 应用程序项目添加新的 XAML 窗口时 您获得的默认视图是 拆分视图 其中可视化设计器和 XAML 代码在同一文档中显示在另一个之上 我更喜欢另一种视图 您可以通过双击 设计 或
  • 来自资源中 ImageSource 的 System.Drawing.Image

    我的问题与这个非常相似 wpf图像资源以及运行时在wpf控件中更改图像 https stackoverflow com questions 940592 wpf image resources and changing image in w
  • 如何创建一个快速加载的包装列表框?

    我制作了一个很好的小三项宽列表 用作开关 它看起来像这样 看起来不错吧 好吧 我在垂直滚动列表中大约有 130 个这样的图块 并且需要很长时间才能加载 根据性能分析工具 每个元素的渲染时间约为 18 毫秒 这给了我大约 2 3 秒的渲染时间
  • 在表格中可视化 2D 数据

    我需要一些帮助并且需要指出正确的方向 我正在创建一个应显示二维数据的 WPF 应用程序 它应该显示如下 y x 1 2 3 4 5 1 1 2 3 4 5 2 2 4 6 8 10 3 3 6 9 12 15 4 4 8 12 16 20
  • 使用 VSTest 代替 MSTest 运行单元测试用例

    我在 TFS2010 服务器上有一个 x64 平台 C 解决方案 VS2012 我已将一个单元测试项目 也是 x64 附加到此解决方案并创建了一个构建定义 当我对构建进行排队时 它成功了 但单元测试用例不会被执行 这是因为 MSTest 是
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • GridViewColumn 中的 WPF 文本格式设置

    我想将格式 对齐文本 货币格式 0000 00 应用于 GridViewColumn 中的列

随机推荐

  • 使用 ActivityLifecycleCallbacks 自动记录 Android 生命周期事件?

    我正在尝试使用 ActivityLifecycleCallbacks 自动捕获和记录 Android 生命周期事件 但是至少可以说 有关此问题的文档很少 public void registerActivityLifecycleCallba
  • 通知系统设计

    我需要为我们自制的 ERP 系统设计通知系统 当不同的事情发生时 它会向用户发送通知 当前的系统很简单 如果发生了某些事情 例如 用户更改了用户个人资料中的电话号码 则会向会计师发送一封电子邮件 这里有一些缺点 如果用户更改了两次 会计师将
  • Java可扩展枚举

    有没有办法编写一个可以扩展的枚举 我希望有几种方法始终可用于我的枚举 例如 我对数据库字段使用枚举 我在数据库中包含实际的字段名称 public enum ORDERFIELDS OrderID Order ID private Strin
  • 如何在GWT中删除jsarray中的值?

    我有两个问题 1 是否可以使用 pop 方法删除 jsarray 中的任何值或仅删除最后一个值 2 如何从 jsarray 中删除或删除一个值 有人可以发布一个例子吗 这里是这样的 public JsArray
  • Gradle 任务将 Maven 存储库中的 jar 放入项目 lib 文件夹中

    http blog jonasbandi net 2014 03 running nodejs applications on jvm with html http blog jonasbandi net 2014 03 running n
  • 如何从 Android Studio 构建所有产品风格?

    我的 gradle 文件有很多风格 def versionName 1 19 def applicationId com site app productFlavors CafebazarPro applicationId applicat
  • 摆脱 ATLTRACE 输出中显示的 atlTraceGeneral 类别

    升级到 VS2013 后 我开始以 atlTraceGeneral 我的输出 格式接收所有 ATLTRACE2 消息 e g ATLTRACE T This is my data d n 124 显示为 dllmain cpp 1121 a
  • 用于记录方法调用和异常的 WCF 服务属性

    我需要记录 WCF 服务中的每个方法调用以及引发的任何异常 这导致了很多冗余代码 因为每个方法都需要包含类似于这样的样板 OperationContract public ResultBase
  • 用户点击我的 EditText 后如何执行某些操作

    我有一个EditText这显示了时间 用户点击后EditText我想展示一个TimePickerDialog 所以我设置了一个View OnClickListener to my EditText But the OnClickListen
  • git 如何跟踪远程存储库中的版本?

    我的理解是 当进行推送时 远程存储库中的代码会更新 git 实际上如何跟踪发布的版本 在 git flow 的上下文中 远程存储库是否还会随我的代码一起提取任何元数据 还是仅提取代码 我对使用 git flow 比较陌生 它更新远程跟踪分支
  • Jetpack Compose - 文本居中

    我正在使用 Jetpack Compose 创建一个简单的闪存卡 这个想法是 你点击闪存卡 它就会给你答案 但是 我陷入了一个基本问题 不幸的是 我什至找不到官方文档 所以我的学习风格一直信任自动更正系统 无论如何 我认为问题出在 Box
  • 如何正确分割这个字符串列表?

    我有一个这样的字符串列表 z 2 44 4 55 z 88 我怎样才能在列表中拆分这个字符串 使其类似于 z 2 44 4 55 z 88 我尝试过使用split然而 已经有方法将 44 分成 4 和 4 我不知道还能尝试什么 您可以使用正
  • 如何编写Linux驱动模块调用/使用另一个驱动模块?

    我正在开发一个 Linux 驱动程序可加载模块 我必须在我的驱动程序中使用另一个设备 某种驱动程序堆叠在另一个驱动程序上 如何在我的驱动程序中调用 使用其他驱动程序 我认为它们都在内核中 所以可能有一种方法可以直接使用另一个驱动程序 您将需
  • FileStream.close() 不会为其他进程释放文件

    我在 Page Load 调用的函数中有以下代码 启动 Visual Studio 后首次加载页面时 一切正常 但此后对文件的任何其他打开调用都会返回IOException File is in use by another process
  • Expo EAS:如何将eas更新分支与构建通道链接?

    我有一个带有 EAS 的 expo v 46 0 0 项目 具有以下构建配置 eas json cli version gt 1 1 0 build production channel production env APP ENV pro
  • 找不到 Flyway maven 插件

    在我的 pom xml 中 我有
  • 一般填充不同的类成员

    我正在开发一个具有多个 11 Web 服务调用的 Web 服务应用程序 对于每个 Web 服务 我需要从字符串数组填充 Soap Body 如下所示 if aMessage int DCSSCustomerUpdate V3 Branch
  • 假设浮点数在 C 中使用 IEEE754 浮点数表示是否安全?

    浮点是在 C 中定义的实现 因此没有任何保证 我们的代码需要可移植 我们正在讨论是否可以在我们的协议中使用 IEEE754 浮点 出于性能原因 如果我们在发送或接收数据时不必在定点格式之间来回转换 那就太好了 虽然我知道平台和架构之间在大小
  • Pandas Dataframe 分组和标准差

    给定一个以下格式的 pandas 数据框 GroupNo at1 at2 at3 at4 1 0 02 1 12 1 88 3 2 1 6 11 1 13 0 88 5 2 4 2 02 1 16 2 88 0 2 3 0 20 0 12
  • 中的 ListBoxItem 样式?

    我可以放一个xamlStyle for ListBoxItem in