DocumentViewer 移除 ToolBar 投影

DocumentViewer remove the ToolBar drop shadow

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

你有想法吗?

我已经循环到控件的子项中,但它不起作用。

这是可视化树(所选的矩形是您所指的阴影):

以下代码隐藏了矩形:

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;
    }
}