线条和不透明度

时间:2010-10-26 16:35:52

标签: c# winforms opacity

我想在c#中的控件上绘制一条不透明线。

我尝试使用visual basic powerpacks shapecontrol ..但我找不到任何设置不透明度的属性。

如何绘制不透明线?

谢谢,

2 个答案:

答案 0 :(得分:1)

此代码将绘制两条半透明白线的交叉。

<强> WPF

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300" Background="LightGray">
    <Grid>
        <Line X1="0" Y1="0" X2="100" Y2="100" Stroke="White" Opacity=".5" StrokeThickness="10" />
        <Line X1="0" Y1="100" X2="100" Y2="0" Stroke="White" Opacity=".5" StrokeThickness="10" />
    </Grid>
</Window>

<强> Windows.Forms的

var pen = new Pen(Color.FromArgb(128, 255, 255, 255), 10);
using (var g = CreateGraphics())
{
    g.DrawLine(pen, 0, 0, 100, 100);
    g.DrawLine(pen, 0, 100, 100, 0);
}

答案 1 :(得分:0)

感谢您的帮助, 我发现了另一种不使用WPF的方法。

C#wnidows表单具有Opacity属性,所以

  1. 创建一个覆盖窗体的屏幕图层。
  2. 通过将transparencykey设置为与图层背面颜色相同的颜色,使屏幕图层变为透明。
  3. 在加载窗体时,将图层的大小更改为与窗体相同。
  4. 确保将屏幕图层与窗体一起移动。
  5. 使用ShapeControl(visual basic power pack)或Graphic(如上面的答案)在图层上绘制任何形状。
  6. 设置Opacity = 0.5