我正在编写一个有No Border
的应用。它还会有BackgroundImage
[显示为幻灯片;用计时器改变了。
我尝试了以下两种方法来实现这一目标:
使用WindowsFormsApplication
:
我使用TransparencyKey
的{{1}}属性以及设置相同的Form
颜色。[我使用Background
]。现在,边框中的一些像素具有颜色Fuchsia
。
使用Fuchsia
:
我使用WindowsPresentationFoundation
的{{1}}并将AllowsTransparency
设置为图片,图片显示正确且透明。现在我必须在一个点[通过设置边距]添加另一个图像,我之前在Paint中指出了这一点。
例如:我从原始背景中裁剪了图像,然后通过设置之前提到的边距将其放置在表单中的正确位置。
但这导致设置错误的边际!
在WPF中,如果我在网格中使用Window
,它会解决边距问题,但透明度不起作用并使透明区域变白!
请提供一些提示以摆脱这个问题!
答案 0 :(得分:3)
这是由图像引起的问题。当你加载它时,你可以看到它,比如Paint.NET并放大,这样你就可以看到各个像素。左上角看起来像这样:
注意边缘上的像素是如何部分透明的。因此,如果您在Fuchsia的背景上绘制此图像,那么这些边缘像素不再是灰色,它们与背景混合并产生不同的颜色。它不再与TransparencyKey匹配,因此视频适配器不会过滤它们。你会把它们视为各种洋红色的边缘。
您需要编辑图片,以便为其提供一个“硬”的图像。没有任何透明度的边缘。
答案 1 :(得分:0)
在WPF窗口中:
WindowStyle =无
AllowsTransparency =真
背景=透明
然后用你的内容放一张图片不起作用?