我有一个ContentPresenter
,我尝试扩展Content = ""
(FrameworkElement)`。
因为如果Content.Size很大就会被切断。我准备这些照片来解释我的问题。
我们从这里开始。如你所见,有一部分缺失(黄色面板被诅咒)。
所以我尝试的是ScaleTransform
。
(XAML)
<ContentPresenter Content="SomeContent"
Grid.Row="1"
Grid.Column="0">
<ContentPresenter.RenderTransform>
<ScaleTransform ScaleX="0.75" ScaleY="0.75"></ScaleTransform>
</ContentPresenter.RenderTransform>
</ContentPresenter>
所以在我添加ScaleTransform
之后我得到了这个结果。
显然我的内容已经缩放,但它仍然被削减。
所以我停止在XAML中尝试它,这就是c#中出现的内容。
public static FrameworkElement ScaleContent(FrameworkElement element, Size space)
{
ScaleTransform scaleTransform = new ScaleTransform();
double height = element.ActualHeight;
double width = element.ActualWidth;
if (height == 0 || width == 0)
{
element.Measure(new Size(space.Width,
space.Height));
element.Arrange(new Rect(0, 0, element.DesiredSize.Width, element.DesiredSize.Height));
height = element.ActualHeight;
width = element.ActualWidth;
}
double scaleWidth = space.Width / width;
double scaleHeight = space.width / height;
scaleTransform.ScaleX = scaleWidth;
scaleTransform.ScaleY = scaleHeight;
element.RenderTransform = scaleTransform;
return element;
}
这就是出来的。
让您看到完整的示例。我以更大的格式保存了一张图片,内容适合。
那么您认为这是什么问题? 谢谢!