首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在WPF中获得可视化的呈现大小?

如何在WPF中获得可视化的呈现大小?
EN

Stack Overflow用户
提问于 2017-11-02 16:37:41
回答 1查看 564关注 0票数 2

我遇到了一种情况,我需要在WPF上获得可视化元素的呈现大小。我的意思是,我需要获得视觉空间上的某些东西所消耗的空间,比如一个应用了ButtonDropShadowEffect,而不仅仅是ActualWidthActualHeight属性的值。

作为一个例子,请考虑以下场景:

代码语言:javascript
代码运行次数:0
运行
复制
<Button Width="100" Height="100">
    <Button.Effect>
        <DropShadowEffect BlurRadius="10" ShadowDepth="0"/>
    </Button.Effect>
</Button>

如您所见,该按钮的大小为100x100,但由于它有一个模糊半径为10的下降阴影,因此它需要120x120的呈现空间。

如何在WPF中获得此按钮的呈现大小( 120x120)?

StackOverflow上已经有了另一个类似的问题,但没有得到确切的答案。所以我要问这个问题。

关于我想要达到的目标的更多细节

我需要这样做的情况如下:

我需要将自定义窗口的可视框架扩展到窗口边界之外。为了达到这个目的,我在实际窗口的边界周围使用了另外4个相邻的窗口。在每一个相邻的窗口中,我都会显示一个VisualBrush,它会显示在窗口之外的内容(就像一个下拉阴影),就像在一个正常的控件上一样。但是,要知道适用于每个相邻窗口的确切大小,并使VisualBrush的内容与主窗口内容一致,我至少需要知道内容的大小和位置。

也许还有另外一种方法来实现这一点..。

EN

回答 1

Stack Overflow用户

发布于 2017-11-02 17:06:44

我可以找到的方法是使用VisualTreeHelper.GetEffect方法,获取与可视化相关的效果,然后根据附加效果的类型进行一些手动计算。

https://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.geteffect(v=vs.110).aspx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47080354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档