Tôi đã tạo biểu mẫu và mở rộng kính trong hình ảnh như trong hình bên dưới. Nhưng khi tôi di chuyển cửa sổ sao cho không phải tất cả hiển thị trên màn hình, hiển thị kính là sai sau khi tôi di chuyển trở lại: Kính không được hiển thị đúng
Làm cách nào để hiển thị cửa sổ?
Đây là mã của tôi:
[DllImport("dwmapi.dll")]
private static extern void DwmExtendFrameIntoClientArea(IntPtr hWnd, ref Margins mg);
[DllImport("dwmapi.dll")]
private static extern void DwmIsCompositionEnabled(out bool enabled);
public struct Margins{
public int Left;
public int Right;
public int Top;
public int Bottom;
}
private void Form1_Shown(object sender, EventArgs e) {
this.CreateGraphics().FillRectangle(new SolidBrush(Color.Black), new Rectangle(0, this.ClientSize.Height - 32, this.ClientSize.Width, 32));
bool isGlassEnabled = false;
Margins margin;
margin.Top = 0;
margin.Left = 0;
margin.Bottom = 32;
margin.Right = 0;
DwmIsCompositionEnabled(out isGlassEnabled);
if (isGlassEnabled) {
DwmExtendFrameIntoClientArea(this.Handle, ref margin);
}
}
Làm thế nào để bạn biết những gì được hiển thị nếu nó không hiển thị? – Gabe
Không chắc chắn ý của bạn là gì ... bạn có nói rằng nếu bạn di chuyển cửa sổ qua cạnh của màn hình và ngược lại, kính đã biến mất trong phần mà cửa sổ giao nhau với cạnh màn hình? – series0ne
P.S. Tôi đã xem xét sử dụng kính nhiều lần trong quá khứ. Tìm kiếm Daniel Moth và Glass trong Google ... Anh ấy có vẻ là một guru với hiệu ứng kính !! – series0ne