小编Gia*_*nni的帖子

为 Base64 图像序列化包装 ImageSource

我有一个 WPF 控件,其中包含带有图像的面板。我正在尝试对其进行序列化,以便它可以独立加载,而不必在本地文件夹中有图像。

我知道我可以将图像存储为 Base64 字符串,然后可能会加载该备份,但我想做的是包装 ImageSource 类以接受 Base64 字符串作为源。

我研究了一下 ImageSource 类,我相信我对它的工作原理了解得不够多。当我在我的自定义包装类中实现 ImageSource 时,我得到了 2 个我不清楚的方法:

  1. 元数据

  2. 创建实例核心

我想知道是否有人可以对这些方法有所了解,或者为我指明一个不会让我回到 MSDN 文档的方向。

c# wpf image

2
推荐指数
1
解决办法
1662
查看次数

画布上的ScaleTransform调整大小比孩子收缩画布的速度更高

我有一个WPF控件停靠在WinForms应用程序中的WPF宿主控件中。WPF控件设置为水平和垂直拉伸,并且主机控件停靠在锚定的组框中。

我的WPF控件具有一个Canvas,可以填充其空间,我可以用来放置从Canvas派生的自定义类的子级。

我订阅了Canvas的SizeChanged主事件,并应用了一个比例转换,以便在调整控件大小时画布及其子元素可以像缩放一样缩放和增长,这是可行的,但是由于某些原因,父画布在比率远高于孩子,这是因为缩放比例使孩子在某个点上从画布上掉下来。

这是我的代码:

    private void EditorCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        if (e.PreviousSize.Width == 0)
            return;
        double YDiff = e.PreviousSize.Height / e.NewSize.Height;
        double XDiff = e.PreviousSize.Width / e.NewSize.Width;

        Scale.ScaleY /= YDiff;
        Scale.ScaleX /= XDiff;
    }
Run Code Online (Sandbox Code Playgroud)

画布的子级似乎以正确的速率缩放,而画布似乎以更高的速率缩放。

是否有人看到任何原因/知道任何可能的原因?

行为图片...请注意较小面板后面的空白区域

之前 IMG

缩放比例 IMG

c# wpf wpf-controls winforms

1
推荐指数
1
解决办法
1737
查看次数

标签 统计

c# ×2

wpf ×2

image ×1

winforms ×1

wpf-controls ×1