我有一个显示窗口缩略图的用户控件
UserControl XAML:
<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显示窗口内容的缩略图
vb.Visual = (Border)Win.Template.FindName("mainBorder", Win);看起来一切都很好。
打开的窗口

缩略图

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

缩略图

我的问题是,无论源(窗口)大小如何改变,我应该如何让缩略图的宽度和高度始终适合我的用户控件(200X200)?
如果有任何线索,非常感谢。
通过将Stretch设置为Fill并将ViewBox设置为window ActualWidth和ActualHeight解决了此问题
<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>发布于 2018-03-28 16:32:42
你可以尝试在你的视觉画笔上设置拉伸。
<VisualBrush Stretch="Fill"在stretch上还有其他选择,但我认为Fill将是你想要的。
https://stackoverflow.com/questions/49528945
复制相似问题