You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除WPF中DocumentViewer控件自带的边框与阴影效果

你当前的配置有3个核心遗漏点:

  1. 自定义模板的外层Border本身配置错误
    你写的<Border BorderThickness="5" >主动加了5像素的边框,且没有指定边框颜色为透明,反而会额外生成边框,需要先修正这个外层Border的配置。
  2. 未覆盖内部FixedPage的默认样式
    DocumentViewer加载的文档内容默认会用FixedPage渲染,WPF内置的FixedPage样式自带边框和阴影效果,只改DocumentViewer外层模板不会影响内部内容的样式。
  3. 要确认你给DocumentViewer实例显式绑定了自定义样式
    你的Style定义了x:Key="MyDocStyle",必须在对应的DocumentViewer控件上加上Style="{StaticResource MyDocStyle}"才会生效,否则会继续用系统默认样式。

修正后的完整代码参考:

首先是调整后的DocumentViewer样式:

<Style x:Key="MyDocStyle" TargetType="DocumentViewer">
    <!-- 先清掉控件自带的默认边框和背景 -->
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="Background" Value="Transparent"/>
    <!-- 清掉默认阴影效果 -->
    <Setter Property="Effect" Value="{x:Null}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="DocumentViewer">
                <!-- 修正外层Border的配置,去掉多余边框 -->
                <Border BorderThickness="0" BorderBrush="Transparent" Background="Transparent">
                    <Grid>
                        <ScrollViewer 
                            HorizontalScrollBarVisibility="Hidden" 
                            VerticalScrollBarVisibility="Hidden" 
                            x:Name="PART_ContentHost"
                            Background="Transparent"
                            BorderBrush="Transparent" 
                            BorderThickness="0" 
                            Padding="0"
                            Effect="{x:Null}">
                        </ScrollViewer>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后需要在同一个资源字典里加FixedPage的隐式样式,覆盖默认的边框阴影:

<Style TargetType="FixedPage">
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="Background" Value="Transparent"/>
    <!-- 清掉FixedPage默认的阴影效果 -->
    <Setter Property="Effect" Value="{x:Null}"/>
    <Setter Property="Padding" Value="0"/>
    <Setter Property="Margin" Value="0"/>
</Style>

内容的提问来源于stack exchange,提问作者Seated

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:54:03