gpt4 book ai didi

wpf - 从主题中操纵意外的样式更改

转载 作者:行者123 更新时间:2023-12-01 08:40:27 30 4
gpt4 key购买 nike

我已经应用了 MaterialDesignInXamlToolkit我的项目的主题。我注意到它可能在我的 ListView 中产生了不需要的矩形区域。 Snoop 指出这个不需要的区域是名为“Bd”的项目的一部分(ListBoxChrome。)

enter image description here

enter image description here在实验中,我已将默认的 ListView 和 ListViewItem 样式应用到此 ListView 的父级:

父用户控件:

 <UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../DefaultWPFSyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
...

默认 WPFStyles,xaml:

...
<Style TargetType="ListView"/>
<Style TargetType="ListViewItem"/>
...

目的是重置那些没有运气的样式。我想知道是否有人可以建议一种解决方法。我目前正在研究如何查找和直接操作 ListBoxChrome 对象。

*编辑

我回滚到之前的构建,看到 ListBoxChrome 一直在那里。我也在Blend中编辑了一份ListView,希望能够访问到chrome对象,但是生成的xaml ListView样式中没有。

那个额外的空间是组标题的大小,所以我想知道是否在某处应用了一些偏移量。

*编辑ListBoxChrome 元素是一个装饰器,是 aero theme 的一部分.看起来它不存在于空列表中,而是在声明 ListView.View 时添加。

enter image description here

enter image description here

最佳答案

我无法重现您的问题,但我确实有一些想法。

鉴于 ListBoxChrome 来自 PresentationFramework.Aero我怀疑它只会出现在使用 Aero 的系统上(只是猜测)。

我认为最大的线索来自你的窥探截图。 ListBoxChrome 元素的名称是“Bd”。如果你search the MDIX library for this您只会找到一些对它的引用。但是,只有少数情况下“Bd”元素是未命名的 ScrollViewer 的直接父级。最有可能的候选人是 ListBox template 中的那个因为 ListView 派生自 ListBox。作为一个简单的测试,尝试设置 BorderBrushBorderThickness 属性,因为这些是绑定(bind)到 Border 的属性,看看这里是否真的发生了这种情况。

现在我不确定它将如何解析为该样式。这将需要查看更多关于您的其他资源字典的代码(以及可能正在应用的其他样式)。

关于wpf - 从主题中操纵意外的样式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393716/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com