PDA

View Full Version : ساخت فرم شیشه ای



ordebehesht
سه شنبه 28 آذر 1391, 20:25 عصر
با سلام میخوام فرمی شیشه ای بسازم چی کارکن م دوستان اطلاعات من در حد صفر مطلق هستش انتظار راهنماییی کلی ندارم اگه فیلیمی کتابی مقاله ای دارین دستتون رو هم می بوسم

alihassanabadi
چهارشنبه 29 آذر 1391, 11:55 صبح
سلام
چون اطلاعاتتون در حد صفر نسبی هم نیست مثل من
آموزش بسیار مفید آقای کیانی رو بخون
http://barnamenevis.org/showthread.php?102127-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-WPF-%28%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-%D8%AA%D8%A7-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87%29
و در نهایت برای شیشه ای کردن ویندوز میتونید فیلم های آموزشی آقای مهدی فرزاد رو بخونید تو بخش اعلان و الگو برداری کنید
http://barnamenevis.org/showthread.php?251604-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%88%DB%8C%D8%AF%D8%A6%D9%88%DB%8C%DB%8C-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-Blend
موفق باشید.

sajad.net
جمعه 08 دی 1391, 19:01 عصر
می تونی از کلاس زیر استفاده کنی

public class WinGlass
{

struct MARGINS
{
public MARGINS(Thickness t)
{
Left = (int)t.Left;
Right = (int)t.Right;
Top = (int)t.Top;
Bottom = (int)t.Bottom;
}
public int Left;
public int Right;
public int Top;
public int Bottom;

}
[DllImport("dwmapi.dll", PreserveSig = false)]
static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);
[DllImport("dwmapi.dll", PreserveSig = false)]
static extern bool DwmIsCompositionEnabled();
public bool ExtendGlassFrame(Window window, Thickness margin)
{
try
{
if (!DwmIsCompositionEnabled())
return false;

IntPtr hwnd = new WindowInteropHelper(window).Handle;
if (hwnd == IntPtr.Zero)
throw new InvalidOperationException("The Window must be shown before extending glass.");
// Set the background to transparent from both the WPF and Win32 perspectives

window.Background = Brushes.Transparent;
HwndSource.FromHwnd(hwnd).CompositionTarget.Backgr oundColor = Colors.Transparent;

MARGINS margins = new MARGINS(margin);
DwmExtendFrameIntoClientArea(hwnd, ref margins);
}
catch{}
return true;

}
}

اینم یه نمونه

alihassanabadi
دوشنبه 11 دی 1391, 09:20 صبح
سلام
البته با opacity ویندوز میشه این کار رو کرد

<Window x:Class="marco.Window4"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window4" Height="300" Width="300" WindowStyle="None" AllowsTransparency="True" Opacity="0.9">
<Grid>

</Grid>
</Window>
توجه اگه خاصیت WindowStyle رو none نکنی با خطا مواجه میشی.
این فقط یک روش ساده بود.