首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF通过VisualBrush创建缩略图

WPF通过VisualBrush创建缩略图
EN

Stack Overflow用户
提问于 2018-03-28 15:53:06
回答 1查看 194关注 0票数 0

我有一个显示窗口缩略图的用户控件

UserControl XAML:

代码语言:javascript
复制
<Grid x:Name="containerGrid" Margin="0">
        <Border Background="White" CornerRadius="5">
            <Border.Style>
                <Style>
                    <Style.Triggers>
                        <Trigger Property="Border.IsMouseOver" Value="True">
                            <Setter Property="Border.Effect">
                                <Setter.Value>
                                    <DropShadowEffect BlurRadius="20" Color="White" ShadowDepth="0" />
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
            <Border x:Name="containerBorder" CornerRadius="5" BorderThickness="1" BorderBrush="Black">
                <Border.Background>
                    <VisualBrush x:Name="vb" />
                </Border.Background>                
            </Border>
        </Border>
    </Grid>

一旦创建了一个新窗口,我就让上面的用户控件通过VisualBrush显示窗口内容的缩略图

代码语言:javascript
复制
vb.Visual = (Border)Win.Template.FindName("mainBorder", Win);

看起来一切都很好。

打开的窗口

缩略图

直到用户更改窗口大小...

缩略图

我的问题是,无论源(窗口)大小如何改变,我应该如何让缩略图的宽度和高度始终适合我的用户控件(200X200)?

如果有任何线索,非常感谢。

通过将Stretch设置为Fill并将ViewBox设置为window ActualWidth和ActualHeight解决了此问题

代码语言:javascript
复制
<VisualBrush x:Name="vb" Stretch="Fill" ViewboxUnits="Absolute">
                        <VisualBrush.Viewbox>
                            <MultiBinding Converter="{CONV:WidthHeightToRectConverter}">
                                <Binding Path="Win.ActualWidth" />
                                <Binding Path="Win.ActualHeight" />
                            </MultiBinding>
                        </VisualBrush.Viewbox>                        
                    </VisualBrush>
EN

回答 1

Stack Overflow用户

发布于 2018-03-28 16:32:42

你可以尝试在你的视觉画笔上设置拉伸。

代码语言:javascript
复制
<VisualBrush Stretch="Fill"

在stretch上还有其他选择,但我认为Fill将是你想要的。

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

https://stackoverflow.com/questions/49528945

复制
相关文章

相似问题

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