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;
}
}
我阅读了很多有关删除 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;
}
}