我会从我的WPF应用程序在桌面上绘制一个矩形。我搜索过,但我没有找到一个好的解决方案和一个很好的例子。 我会在屏幕的边缘绘制一个矩形,并在发生特定情况时改变颜色。
我怎么能以正确的方式做到这一点?
我找到了这段代码:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices;
class Program {
[DllImport("User32.dll")]
static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
static extern void ReleaseDC(IntPtr dc);
static void Main(string[] args) {
IntPtr desktop = GetDC(IntPtr.Zero);
using (Graphics g = Graphics.FromHdc(desktop)) {
g.FillRectangle(Brushes.Red, 0, 0, 100, 100);
}
ReleaseDC(desktop);
}
}
但我没有控制台应用程序,我不明白如何重新绘制/刷新我的矩形或从此代码更改其颜色。
谢天谢地。
答案 0 :(得分:1)
您可以创建具有透明Window
的全屏WPF应用程序。您可以在Paul Sherrif博客的Creating Border-less Windows in WPF页面上了解如何执行此操作。简而言之,要获得无边框窗口,您需要在Window
上设置以下属性:
•
WindowStyle="None"
•ShowInTaskbar="False"
•AllowsTransparency="True"
•Background="Transparent"
然后你只需在WPF应用程序中进行绘制,但它看起来像绘图在桌面上。
答案 1 :(得分:0)
此代码无法以任何方式应用于WPF。 WPF是一种保留模式API,与Windows Forms不同,因此您无法像这样绘制它(实际上您可以使用 HWND interop 或DrawingVisual
)。但它不应该打扰你,因为你不需要自己绘制它,只需使用XAML声明所需的矩形和任何其他东西。