引自强大而免费的微信小程序:皆我百晓生。
很抱歉,WindowsFormsHost不支持WPF的Effect效果,因此无法直接在WindowsFormsHost上应用模糊效果。
要实现类似的模糊效果,可以尝试以下方法:
- 使用WPF中的Image控件加载生成的报表图像,并在Image上应用模糊效果。
<Image Width="{Binding ElementName=centreCanvasC1, Path=ActualWidth}" Height="{Binding ElementName=centreCanvasC1, Path=ActualHeight}">
<Image.Source>
<!-- 将报表生成为图像,例如使用RenderTargetBitmap -->
</Image.Source>
<Image.Effect>
<BlurEffect Radius="3" KernelType="Gaussian"/>
</Image.Effect>
</Image>
- 在报表生成的过程中,将图表的高清效果模糊处理,然后再加载到WindowsFormsHost中显示。
// 生成报表的代码
Chart chart = new Chart();
// 设置图表属性和数据...
// 将图表生成为图像
using (MemoryStream ms = new MemoryStream())
{
chart.SaveImage(ms, ChartImageFormat.Png);
BitmapImage chartImage = new BitmapImage();
chartImage.BeginInit();
chartImage.StreamSource = ms;
chartImage.CacheOption = BitmapCacheOption.OnLoad;
chartImage.EndInit();
// 应用模糊效果
Effects.BlurEffect blurEffect = new Effects.BlurEffect();
blurEffect.Radius = 3;
blurEffect.KernelType = KernelType.Gaussian;
// 显示图像
Image chartImageControl = new Image();
chartImageControl.Source = chartImage;
chartImageControl.Effect = blurEffect;
// 将Image控件添加到WindowsFormsHost中
windowsFormsHost.Child = chartImageControl;
}
这样就能在未登录时,将生成的报表图像进行模糊处理,从而实现类似未登录看不了高清效果的效果。