是否可以在窗体设计器上不使用 C# 代码来旋转图片框或更改图片框边框的形状?

Is it possible to rotate a picture box without C# code on the Form Designer or change shape of picture box border?

我对 C# 和 WinForms 还很陌生。我正在尝试创建一个分段显示,其中某些分段会打开和关闭(使用 Microsoft Visual Studio 2015)。

现在我在 GIMP 中放置带有我裁剪和删除背景的片段的图片框,只要这些片段彼此之间的距离足够远,或者是完全正方形,它就可以正常工作。

当它们重叠时,将图片框背景设置为透明,图片框透明直接穿过另一个图片框,只显示矩形图片框覆盖的表格window的背景。

我尝试了两种不同的方法:

  1. 将图片框的默认矩形更改为我可以绘制的任何形状;不太确定该怎么做,我认为这不可能

  2. 添加一堆图片为深黑色的图片框,然后将它们旋转移动到正确的位置,并在特定片段出现时打开它们,以掩盖问题。但是,我不认为我可以,或者不知道如何在放置时旋转整个图片框?我在 C# 中看到了一些关于旋转图片框的在线代码,但我不确定如何实现它。我觉得对于其他任何东西都必须有一个我只是缺少的旋转选项。

附上问题图片,注意我是怎么把段(行)发到后面,短信引用图片发到前面的。虚线为图片框:

winforms 设计器没有真正的 UX 设计功能。它主要针对为面向数据的应用程序设计简单的UI。您将找不到任何高级功能。您可以调整控件的大小、对齐它们、在容器之间移动。

有高级方法,如何改变控件的形状。但是在winforms designer中是没有的。

winforms 中的透明度是假的。实际上,透明度意味着 "I'll show the background color of my parent"。如果你想要"true transparency"你必须绘制其他控件作为目标控件的背景图像。

您可以使用 WPF 项目来完成您想要的。它比 WinForms 灵活得多。此外,它支持真正的透明度。它确实有一点学习曲线,但如果您刚刚起步,我认为您最好从 WPF 开始。

您可以在 WPF 中旋转图像 (PictureBox),如下所示:

<Window x:Class="WpfApplication.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="467" Width="616">
    <Grid>
        <Image Source="C:\MyFolder\MyImage.gif">
            <Image.LayoutTransform>
                <RotateTransform Angle="45" />
            </Image.LayoutTransform>
        </Image>
    </Grid>
</Window>