我做了一個全屏透明的視窗
lable也是全屏列印的文本
lable也可以穿透
但是滑鼠移動到文本上時就不能穿透了
怎么能使滑鼠在文本上時也能穿透
需求:在全螢屏上列印一些文字,做到滑鼠的全屏穿透
請大神不吝賜教!
uj5u.com熱心網友回復:
如果在文本上穿透了,文本還看得見嗎?你可捕獲在文本上的滑鼠位置,換算成螢屏坐標,完成后續動作
uj5u.com熱心網友回復:
感謝回答!
需要看到文本,其實我做的就是全屏的水印
但現在文本會獲取滑鼠焦點,文本間隙并不會獲取焦點
如何實作文本也可以穿透,使用其他控制元件也可
uj5u.com熱心網友回復:
有沒有好的方法?uj5u.com熱心網友回復:
表單只有背景色的部分可被穿透(這是系統的功能沒法改變)所以文字部分不能被穿透既然 是全屏的水印,那就換個思路:更換桌面的背景圖
user32.dll 中的 SystemParametersInfo 函式
uj5u.com熱心網友回復:
有一些桌面歌詞那種穿透是如何實作的?uj5u.com熱心網友回復:
能點擊歌詞后面的圖示?舉例看看uj5u.com熱心網友回復:
但是滑鼠移動到文本上時就不能穿透了-》貼出效果圖或相關代碼
uj5u.com熱心網友回復:
滑鼠放在非水印區,在文字處滑鼠是游標
滑鼠放在水印上時,滑鼠變成指標,這是滑鼠焦點是在水印的文字上

代碼很簡單:
windows:Background="{x:Null}" AllowsTransparency="True" Topmost="True" ShowInTaskbar="False"
grid、label :<Grid x:Name="frontscreen" Background="Transparent" ScrollViewer.VerticalScrollBarVisibility="Disabled" IsHitTestVisible="False" Focusable="False">
<Label x:Name="label" Background="Transparent" Margin="-126,-515,-103,-535" RenderTransformOrigin="0.5,0.5" FontSize="18"
uj5u.com熱心網友回復:
試了好多方法,都無法解決大神快顯靈
uj5u.com熱心網友回復:
樓上已貼圖,看一下我表達的是否清楚?
uj5u.com熱心網友回復:
IsHitTestVisible屬性設定為falseuj5u.com熱心網友回復:
sorry,上一個回答錯了。。。
public MainWindows()
{
InitializeComponent();
SourceInitialized += delegate
{
IntPtr hwnd = new WindowInteropHelper(this).Handle;
uint extendedStyle = GetWindowLong(hwnd, GwlExstyle);
SetWindowLong(hwnd, GwlExstyle, extendedStyle | WsExTransparent);
};
}
private const int WsExTransparent = 0x20;
private const int GwlExstyle = (-20);
[DllImport("user32", EntryPoint = "SetWindowLong")]
private static extern uint SetWindowLong(IntPtr hwnd, int nIndex, uint dwNewLong);
[DllImport("user32", EntryPoint = "GetWindowLong")]
private static extern uint GetWindowLong(IntPtr hwnd, int nIndex);
把這幾句加上就OK ,哦,還有
using System.Runtime.InteropServices;
using System.Windows.Interop;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/138545.html
標籤:C#
下一篇:跪求大神指點迷津
