You need to enable JavaScript to run this app. WPF中如何为Button背景图设置内边距及解决ScrollViewer下显示异常
优惠活动
大模型
产品
解决方案
定价
更多

WPF中如何为Button背景图设置内边距及解决ScrollViewer下显示异常

WPF Button 背景图设置专属边距的实现问题

初始需求与现有实现

我希望实现为Button的背景图设置专属边距的效果,当前已实现的代码如下:

<Button Grid.Column="3" Margin="2,0">
    <Button.Background>
        <ImageBrush Stretch="Fill" TileMode="None">
            <ImageBrush.ImageSource>
                <DrawingImage Drawing="{StaticResource MyImage}" />
            </ImageBrush.ImageSource>
        </ImageBrush>
    </Button.Background>
</Button>

上述代码会让背景图完全填充Button,符合基础预期,但目前我需要在背景图四周添加小额边距。由于ImageBrush、DrawingImage均未提供对应边距属性,暂未找到直接的实现方案。

试错方案与异常表现

我曾尝试通过在Button的Content中放置可设置边距的Image来实现需求,但该方案存在异常:当将Button放入ScrollViewer控件中时,调整视图尺寸Button会随之拉伸,但其中的Image尺寸保持不变,显示效果异常。

  • 更新 *

补充排查与待确认疑问

根据已收到的答复,自定义样式似乎是适配性最佳的方案。但我怀疑核心问题并非Button本身,而是包裹Button的ScrollViewer:我附上了两张对比截图,第一张为带ScrollViewer的效果,第二张为不带ScrollViewer的效果;带ScrollViewer时Image尺寸过小无法适配Button,这是否为问题的根本原因?请各位给出相关建议。

带ScrollViewer的效果:
带ScrollViewer的效果

不带ScrollViewer的效果:
不带ScrollViewer的效果


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 10:06:07