【问题标题】:DocumentViewer remove the ToolBar drop shadowDocumentViewer 移除 ToolBar 投影
【发布时间】:2023-03-18 19:31:01
【问题描述】:

我已经阅读了很多关于在 DocumentViewer 控件中删除工具栏或搜索栏的主题,但我无法删除工具栏的阴影效果..

你有什么想法吗?

我已经循环进入控件的子控件,但它不起作用。

【问题讨论】:

  • 你不需要 xaml.... 这是所有 DocumentViewer 控件的默认属性

标签: c# wpf toolbar dropshadow documentviewer


【解决方案1】:

这是视觉树(选定的 Rectangle 是您引用的投影):

以下代码隐藏了矩形:

class MyDocumentViewer : DocumentViewer
{
    public void RemoveToolbarShadow()
    {
        var r = this.FindType<System.Windows.Controls.Border>()?
            .FindType<Grid>()?
            .FindType<DockPanel>()?
            .FindType<System.Windows.Shapes.Rectangle>();

        if (null != r) r.Visibility = Visibility.Hidden;
    }
}

助手扩展:

static class DependencyObjectExtensions
{
    internal static T FindType<T>(this DependencyObject reference) where T : DependencyObject
    {
        int n = VisualTreeHelper.GetChildrenCount(reference);
        for (int i = 0; i < n; i++)
        {
            var c = VisualTreeHelper.GetChild(reference, i) as T;
            if (null != c) return c;
        }
        return null;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多