滚动条相交的烦人方块

2024-03-05

我有一个带有 ScrollViewer 的应用程序。两个滚动条相遇的地方是一个令人讨厌的小方块(见下面的图片),我正在尝试摆脱它。当我“窥探”应用程序时,我可以发现它是一个“矩形”,但我假设它是 ScrollViewer 的一部分?

我已经搜索并搜索了有关此的任何信息,但我所能找到的只是通过在其顶部放置一些东西来隐藏它的建议:s

谁能指出我正确的方向来解决这个问题?

<ControlTemplate x:Key="HorizontalScrollBar" 
        TargetType="{x:Type ScrollBar}">
        <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition MaxWidth="18"/>
                <ColumnDefinition Width="0.00001*"/>
                <ColumnDefinition MaxWidth="18"/>
            </Grid.ColumnDefinitions>
            <Border
                Grid.ColumnSpan="3"
                CornerRadius="2" 
                Background="Transparent"   />
            <RepeatButton 
                Grid.Column="0"                           
                Style="{StaticResource ScrollBarLineButton}"
                Width="18"
                Command="ScrollBar.LineLeftCommand"
                Content="M 4 0 L 4 8 L 0 4 Z" />
            <Track 
                Name="PART_Track"
                Grid.Column="1"
                IsDirectionReversed="False">
                <Track.DecreaseRepeatButton>
                    <RepeatButton 
                        Style="{StaticResource ScrollBarPageButton}"
                        Command="ScrollBar.PageLeftCommand" />
                </Track.DecreaseRepeatButton>
                <Track.Thumb>
                    <Thumb 
                        Style="{StaticResource ScrollBarThumb}" 
                        Margin="0,1,0,1"  
                        Background="{DynamicResource NormalBrush}"
                        BorderBrush="{DynamicResource NormalBorderBrush}" />
                </Track.Thumb>
                <Track.IncreaseRepeatButton>
                    <RepeatButton 
                        Style="{StaticResource ScrollBarPageButton}"
                        Command="ScrollBar.PageRightCommand" />
                </Track.IncreaseRepeatButton>
            </Track>
            <RepeatButton 
                Grid.Column="3" 
                Style="{StaticResource ScrollBarLineButton}"
                Width="18"
                Command="ScrollBar.LineRightCommand"
                Content="M 0 0 L 4 4 L 0 8 Z"/>
        </Grid>
    </ControlTemplate>

我刚刚遇到了完全相同的问题,但在 Stack 上找到了这个答案来为我解决:

无法在 WPF 中完全设置列表框/滚动查看器的样式 https://stackoverflow.com/questions/1944633/cant-fully-style-a-listbox-scrollviewer-in-wpf

虽然that解决方案does用一些东西代替正方形,它是在 ControlTemplate 中完成的(滚动浏览器,而不是 ScrollBar),而不是通过一些泡泡糖修补方法将某些东西放在 ScrollViewer 之上control.

然而,我发现,通过完全省略该模板中的 Rectangle 定义,烦人的角正方形就会消失 - 即该区域呈现 ScrollViewer 的任何背景颜色(在给出的示例中,它是透明的 - 并且很适合我。如果你想设置ScrollViewer背景的颜色,只需设置Grid的Background属性即可)。

因此,请尝试将其添加到您的资源中:

<Style TargetType="{x:Type ScrollViewer}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ScrollViewer}">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <ScrollContentPresenter Grid.Column="0" />
                    <ScrollBar x:Name="PART_VerticalScrollBar" Grid.Row="0" Grid.Column="1" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>
                    <ScrollBar x:Name="PART_HorizontalScrollBar" Orientation="Horizontal" Grid.Row="1" Grid.Column="0" Value="{TemplateBinding HorizontalOffset}" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>
                    <!--<Rectangle Grid.Row="1" Grid.Column="1" Fill="Red"/>-->
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

滚动条相交的烦人方块 的相关文章

  • ASP.NET MVC:如何可靠地获取当前请求的真实URL?

    现在我有一个 MVC 应用程序运行在http 127 0 0 1 8081 http 127 0 0 1 8081 它实际上在 Azure 计算模拟器中运行 浏览器位置栏清楚地显示端口号为 8081 然而 Request Url and R
  • 如何从作为 UWP 运行的 WPF 应用程序处理文件激活?

    我有一个WPF我想要处理文件激活的应用程序 我找到了通过向注册表添加特定值来解决问题的解决方案 问题是最终的应用程序应该是UWP应用程序 我正在使用桌面桥来执行此操作 如果应用程序运行为UWP 它无法到达注册表来设置这些特定值 有没有其他方
  • 合并两个(或更多)PDF

    背景 我需要为我的销售人员提供每周报告包 该包包含几个 5 10 个水晶报告 Problem 我想允许用户运行所有报告并且只运行单个报告 我想我可以通过创建报告然后执行以下操作来做到这一点 List
  • 面向对象的铸造错误[重复]

    这个问题在这里已经有答案了 将派生类强制转换为基类 我有一个通用的基本抽象类 继承自 IComparable 其定义如下 public abstract class BaseClass
  • 具有子列表属性映射问题的自动映射器

    我有以下型号 Models public class Dish Required public Int64 ID get set Required public string Name get set Required public str
  • 如何使用 PowerShell 中的凭据从本地复制到远程位置?

    我是 PowerShell 的新手 我有用户名和密码来访问远程位置的共享文件夹 I need 复制文件foo txt从当前位置到 Bar foo myCOmpany com logs在为以下内容编写的 PS1 脚本中Powershell v
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • 如何将 WPF 大小转换为物理像素?

    将 WPF 与分辨率无关 宽度和高度转换为物理屏幕像素的最佳方法是什么 我正在 WinForms 表单中显示 WPF 内容 通过 ElementHost 并尝试制定一些大小调整逻辑 当操作系统以默认 96 dpi 运行时 我可以正常工作 但
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 将日期时间转换为时间

    我有一个对象 2 17 2011 6 46 01 PM 我想将此对象转换为 6 46 PM string myDateString 2 17 2011 6 46 01 PM DateTime datetime DateTime Parse
  • 具有依赖属性的值转换器

    我在实现自定义 DependencyObject 时遇到问题 我需要一个转换器来设置或取消设置绑定属性中的枚举标志 因此 我创建了一个从 FrameworkElement 派生的 IValueConverter 它具有两个 Dependen
  • 如何对私有方法进行单元测试?

    我正在构建一个类库 它将有一些公共和私有方法 我希望能够对私有方法进行单元测试 主要是在开发时 但它也可能对未来的重构有用 这样做的正确方法是什么 如果您想对私有方法进行单元测试 则可能会出现问题 单元测试 一般来说 旨在测试类的接口 即其
  • 如何将 .NET 控制台应用程序转换为 Winforms 或 WPF 应用程序

    我经常从一个简单的控制台应用程序开始尝试一个想法 然后创建一个新的基于 GUI 的项目并将代码复制进去 有更好的方法吗 我可以轻松转换现有的控制台应用程序吗 只需添加一个新的Winform 将以下代码添加到您的Main Applicatio
  • 我是唯一一个收到“当前目标框架中不可用的程序集”的人吗?

    在添加测试项目后 我在使用 Visual Studio 2010 和任何报告此错误的框架版本时遇到了一个持续存在的问题 当前目标框架中不提供程序集 到目前为止 我只在两个程序集上发生过这种情况 并且始终一致 系统服务流程 系统 配置 安装
  • DLL 中的 GUID (.Net)

    我在这方面不是很有经验 所以我有几个问题 首先 所有 Net 创建的 DLL 是否都有自己的 GUID 如果没有 我的问题是如何获得一个并将其与 DLL 关联 那么问题是 我如何获得该 dll 的 GUID 即 给定 DLL 路径 c so
  • .NET 程序集差异/比较工具 - 有什么可用? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望能够在两个程序集之间进行代码级差异 Reflector 的 Diff 插件是迄今为止我发现的最接
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h
  • 在 Windows CE 6.0 与 Windows Mobile 6.1 下进行开发的权衡是什么

    我有一个 Windows NET 应用程序 我计划将其 移植 并定制为移动设备 该应用程序由一个独立的 NET 程序组成 该程序与条形码扫描仪配合使用 具有简单的 UI 并将扫描结果记录到文件中 还有一个 Windows 服务 可以使用 W
  • MVVM 消息传递或事件或其他什么选项?

    我在 MainViewModel 中有一个菜单 现在在选择特定的菜单项时我想更新已加载的视图的数据 即 虽然 MainViewModel 中有该 viewModel 的实例 但当我尝试通过该实例调用该方法并更改数据属性时 它不会显示视图中的
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 根据字段值更改奏鸣曲管理包中的行颜色

    我有奏鸣曲管理包 但无法弄清楚如何根据表单模板中的字段值更改样式 例如字段难度 难度值越高 记录行的颜色应该越红 我怎样才能做到这一点 我花了几个小时来理解奏鸣曲中的树枝模板 但是我读这个模板越多 我就越感到困惑 模板之间存在块调用 并且不
  • 通过元编程将c++简化为objective-c/cocoa桥接?

    在纯 C 世界中 我们可以结合使用基于模板的编译时和运行时技术 在编译时生成不同组件或接口之间的接口或粘合代码 例如 大多数情况下自动编组到使用旧类型的调用 从调用中编组 然而 当必须将 C 应用程序与 Objective C Cocoa
  • Envers:单向 OneToMany 无需额外审核表?

    以下数据库架构 员工 EMP ID PK 姓名 工资 电话 ID PK number str OWNER ID FK Employee aud EMP ID PK REV PK FK REVTYPE 姓名 工资 Phone aud ID P
  • easyphp 和 .htaccess

    我需要 EasyPHP 和 htaccess 的帮助 htaccess 文件不起作用 我认为这是因为我没有使用 EasyPHP 设置某些内容 我的 EasyPHP 版本是5 3 8 1 也许有人知道如何解决这个问题 htaccess 文件
  • 从另一个 cython 包的 cdef 类内联 cdef 方法

    我有一个 cython 类 如下所示 cdef class Cls cdef func1 self pass 如果我在另一个库中使用此类 我是否能够内联 func1 这是一个类方法 或者我应该找到解决方法 例如 通过创建一个将 Cls 指针
  • Flutter中间隔自动获取Api数据

    在我的扑动应用程序中 我试图显示更新数据 我成功地手动从天气 api 获取数据 但我需要不断地每5秒抓取一次数据 所以应该会自动更新 这是我在 Flutter 中的代码 class MyApp extends StatelessWidget
  • R中系统投资利息计算的代码[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 假设我每月在银行存入 1000 P 美元 为期 60 n 个月 银行每月向我支付 1 利率 作为利息 因此我可以计算每笔存款的利息 P 1
  • macOS:是否可以检测何时按下 Mac 键盘上的“fn”键?

    我很好奇是否可以检测何时按下 Mac 键盘上的 fn 键 无论是单独使用还是与另一个键组合使用 有没有办法做到这一点 我愿意使用任何类型的方法 包括必要时未记录的 Apple API 当按下 Fn 键时 所有键盘 NSEvents 的 mo
  • python 列出数字

    我需要在 python 中打印所有数字列表 到目前为止我写了这个 def lists listNum i if i len listNum 1 print listNum else for j in range i len listNum
  • 检测不同浏览器下安装的插件?

    我想知道是否有一种方法可以检测不同浏览器上安装的插件 到目前为止 我发现您可以通过尝试猜测 chrome path to some plugin image gif 是否存在来 检测 Firefox 上的插件 Firefox 的代码如下所示
  • web.config 中的表单身份验证

    我正在使用 MVC3 并将用户身份验证放在 web config 文件中 这是为了绕过 sqlserver 身份验证 web config中的代码如下
  • 如何在过程宏中确定编译属性?

    我正在开发一个程序宏 它做了很多工作 可以大大减慢编译速度 所做的工作不会影响函数的语义 也就是说 如果给定相同的参数集 则返回值不会根据是否应用宏而改变 为了使编辑 比较 测试循环更快 我想根据与包的编译方式相关的条件使宏成为无操作 我希
  • setReadOnly 不起作用

    我在用setReadOnly方法使我的应用程序目录存储在我的 SD 卡上 只读 然而 即使我为应用程序提供了以下内容 调用此方法时也会返回 false android permission WRITE EXTERNAL STORAGE清单中
  • Laravel 5 Eloquent,如何动态设置强制转换属性

    在 laravel 5 1 中 有一个名为 Attribute Casting 的新功能 详细记录在此处 http laravel com docs 5 1 eloquent mutators attribute casting http
  • 在创建窗口句柄之前,无法在控件上调用 VB.NET Invoke,但句柄已创建

    这是我的情况 有2个班级和我的主要表格Form1 Class1 有一个方法 doSomethingAndCall callback 它创建一个新线程 Class2 具有动态创建的控件 带有触发 Class1 doSomethingAndCa
  • 如何使用 js 或 jQuery 将自定义 HTTP 标头添加到 ajax 请求

    有谁知道如何使用 JavaScript 或 jQuery 添加或创建自定义 HTTP 标头 我正在使用下面的代码 但它给了我405 不允许的方法 我在用POST方法但在请求方法中但它向我展示OPTION在请求方法中 状态代码 405 方法不
  • Angular 2.0.0 - 测试“由模块‘DynamicTestModule’导入”

    我在 Angular 2 中测试 app component ts 时遇到问题 我使用的是 angular cli 每当我运行 ng test 时 我的 app component spec ts 都会使控制台提示错误 Failed Une
  • 对于 Web 开发商店(10+)来说,Symfony 是否是比 Zend 更好的选择,因为它是一个全栈框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的工作团队正在考虑使用一个框架来开发网站和应用程序 一些前辈确信我们应该使用 Zend Framework 因为它更容易挑选功能 因此我们的框
  • 每次删除定时器都需要调用timer_delete吗?

    I used timer create 在下面的代码中 它只会在 10 秒后触发一次处理程序 struct itimerspec itimer 0 0 10 0 struct sigevent si memset si 0 sizeof s
  • 滚动条相交的烦人方块

    我有一个带有 ScrollViewer 的应用程序 两个滚动条相遇的地方是一个令人讨厌的小方块 见下面的图片 我正在尝试摆脱它 当我 窥探 应用程序时 我可以发现它是一个 矩形 但我假设它是 ScrollViewer 的一部分 我已经搜索并