110,561
社区成员
发帖
与我相关
我的任务
分享
[DllImport("user32.dll", EntryPoint = "SendMessage")]// 移动
public static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "ReleaseCapture")]
public static extern int ReleaseCapture();
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
[StructLayout(LayoutKind.Sequential)]
public struct MARGINS
{
public int cxLeftWidth;
public int cxRightWidth;
public int cyTopHeight;
public int cyBottomHeight;
}
#region 引用 Dll
[DllImport("DwmApi.dll")] //玻璃
public static extern int DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS pMarInset);
[DllImport("user32.dll", EntryPoint = "SendMessage")]// 移动
public static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam);
[DllImport("user32.dll", EntryPoint = "ReleaseCapture")]
public static extern int ReleaseCapture();
public const int WM_SysCommand = 0x0112;
public const int SC_MOVE = 0xF012;
#endregion
private void ExtendAeroGlass(Window window)
{
try
{
// 为WPF程序获取窗口句柄
IntPtr mainWindowPtr = new WindowInteropHelper(window).Handle;
HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr);
mainWindowSrc.CompositionTarget.BackgroundColor = Colors.Transparent;
// 设置Margins
MARGINS margins = new MARGINS();
// 扩展Aero Glass
margins.cxLeftWidth = -1;
margins.cxRightWidth = -1;
margins.cyTopHeight = -1;
margins.cyBottomHeight = -1;
int hr = DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins);
if (hr < 0)
{
MessageBox.Show("玻璃效果加载失败!");
}
}
catch (DllNotFoundException)
{
Application.Current.MainWindow.Background = Brushes.White;
}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Background = Brushes.Transparent;
ExtendAeroGlass(this);
}
private void window_SizeChanged(object sender, SizeChangedEventArgs e)
{
Size newSize = e.NewSize;
newSize = new Size(e.NewSize.Width - 6, 30);
Thickness thick = new Thickness(newSize.Width / 50, 0, 0, 0);
//MessageBox.Show(newSize.Height.ToString());
if (newSize.Width < 754)
{
this.lblLogo.Visibility = Visibility.Collapsed;
}
else if (newSize.Width < 915)
{
this.lblLogo.Visibility = Visibility.Visible;
btnMineSongs.Visibility = Visibility.Collapsed;
btnNewSongs.Visibility = Visibility.Collapsed;
btnNewUpLoadSong.Visibility = Visibility.Collapsed;
this.cboSearch.Width = newSize.Width / 7.5;
this.btnMineSong.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnNewSong.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnNewUpLoad.Margin = new Thickness(newSize.Width / 15, 0, 0, 0);
}
else
{
this.lblLogo.Visibility = Visibility.Visible;
btnMineSongs.Visibility = Visibility.Visible;
btnNewSongs.Visibility = Visibility.Visible;
btnNewUpLoadSong.Visibility = Visibility.Visible;
this.cboSearch.Width = newSize.Width / 6;
this.btnMineSongs.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnNewSongs.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnNewUpLoadSong.Margin = new Thickness(newSize.Width / 15, 0, 0, 0);
this.btnMineSong.Margin = new Thickness(0);
this.btnNewSong.Margin = new Thickness(0);
this.btnNewUpLoad.Margin = new Thickness(0);
}
this.lblLogo.Margin = new Thickness(newSize.Width / 180, 0, 0, 0);
this.btnLogin.Margin = new Thickness(newSize.Width / 90, 0, 0, 0);
this.btnMineSongs.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnNewSongs.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnNewUpLoadSong.Margin = new Thickness(newSize.Width / 15, 0, 0, 0);
this.cboSearch.Margin = new Thickness(newSize.Width / 60, 0, 0, 0);
this.btnTime.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnUpLoadSong.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
this.btnDownLoadSong.Margin = new Thickness(newSize.Width / 45, 0, 0, 0);
//窗体大小变化 播放器始终位于窗体中间
if (iMusicControl1.Margin.Top == 0)
iMusicControl1.Margin = new Thickness((newSize.Width - iMusicControl1.Width) / 2, 0, 0, 0);
if (iMusicControl1.Margin.Left == 0)
iMusicControl1.Margin = new Thickness(0, (this.Height - iMusicControl1.Height - 20) / 2, 0, 0);
if (this.WindowState == WindowState.Maximized || this.Height > 438)
{
iMusicControl1.Margin = new Thickness((newSize.Width - iMusicControl1.Width) / 2, (this.Height - iMusicControl1.Height - 20) / 2 , 0, 0);
}
//this.Title = this.Height.ToString();
}
private void btnLogin_Click(object sender, RoutedEventArgs e)
{
LoginWindow login = new LoginWindow();
login.ShowDialog();
}
private void btnRegiest_Click(object sender, RoutedEventArgs e)
{
RegistWindow regist = new RegistWindow();
regist.ShowDialog();
}
}