Tag: aero

可以控制其他程序/ Windows

我想知道是否可以调整除实际应用程序本身之外的程序。 IE,我想resize并移动Word和我的应用程序分别填充屏幕的70%和30%。 Private Sub MinimiseButton_Copy_Click(sender As Object, e As RoutedEventArgs) Handles MinimiseButton_Copy.Click Me.Left = SystemParameters.PrimaryScreenWidth – Me.Width + 14 Me.Top = -14 Me.Height = SystemParameters.PrimaryScreenHeight Dim parry As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName(“winword”) Dim word As System.Diagnostics.Process = parry(0) SetWindowPos(word.Handle, 0, 0, 0, SystemParameters.PrimaryScreenWidth – Me.Width, SystemParameters.PrimaryScreenHeight – 28, &H10) End Sub Public Shared Function SetWindowPos(hWnd As […]

尽管有WS_EX_COMPOSIET标志和DoubleBuffered属性,但在resize后闪烁

我有一个TableLayoutPanel,我在其中使用布局中的控件执行一些拖放操作。 不幸的是,控制在掉落动作后闪烁。 我在所有控件和许多其他东西上尝试了DoubleBuffered = true。 我也试过这个解决方案: 如何修复用户控件中的闪烁 。 实际上它与上面提到的CreateParams一起工作得很好。 但只有在我调整表单大小之前。 在resize后,Windows似乎忘记了WS_EX_COMPOSIET标志。 它只出现在航空主题上。 如果没有aero,它会在resize后保留CreateParams的设置。 打开aero主题时有没有办法防止闪烁?

写入Windows 7“预览”窗口区域

如何使用C#将控件写入或绘制到Windows 7预览区域? 有关我所谈论的示例,请在Windows 7中打开Windows Media Player并播放歌曲。 播放歌曲时,最小化Windows Media Player,然后将鼠标hover在Windows Media Player图标上,您将在实际的Media Player预览窗口下方看到暂停,倒带和快进按钮。 如何在C#中复制这种行为?

在调用GDI文本函数后如何修复alpha值?

我有一个使用Aero玻璃效果的应用程序,因此除红色,绿色和蓝色值外,每个像素都有一个alpha值。 我有一个自定义绘制控件,具有纯白色背景(alpha = 255)。 我想使用GDI文本函数在控件上绘制纯文本。 但是,这些函数将alpha值设置为任意值,导致文本半透明地显示我的应用程序下面的任何窗口。 在调用渲染文本之后,我想通过控件中的所有像素并将其alpha值设置回255.这样做的最佳方法是什么? 我对BitBlt , GetPixel和SetPixel函数没有任何好运。 他们似乎忘记了阿尔法值。 以下是我考虑和拒绝的其他解决方案: 绘制到位图,然后将位图复制到设备:使用此方法,文本渲染不会使用监视器的特征(例如,ClearText)。 如果您知道一种方法可以让GDI将文本渲染到位图, 就像渲染到屏幕一样,这也可以解决我的问题。 使用GDI +进行文本呈现:此应用程序最初使用GDI +进行文本呈现(在我开始使用Aero支持之前)。 由于我在尝试使用GDI +精确测量字符串时遇到困难,我切换到GDI。 我宁愿不回头。 设置Aero区域以避免相关控件:我的应用程序窗口实际上是在不同进程中运行的不同应用程序的子窗口。 我无法直接控制顶级窗口上的Aero设置。 该应用程序是使用Windows Forms以C#编写的,尽管我上面没有使用Interop来调用Win32 API函数。

如何在.NET中调用DrawThemeTextEx

我需要在Vista / 7玻璃窗口中写一个带有发光的文本,我试图调用API在那里写一些文本。 我在CodeProject中检查了一个很好的示例 ,但问题是我使用的是.NET 1(请不要问:-) 我需要将以下.NET 2代码转换为PInvoke,.NET 1代码。 // using System.Windows.Forms.VisualStyles VisualStyleRenderer renderer = new VisualStyleRenderer( VisualStyleElement.Window.Caption.Active); // call to UxTheme.dll DrawThemeTextEx(renderer.Handle, memoryHdc, 0, 0, text, -1, (int)flags, ref textBounds, ref dttOpts); .NET 1中不存在VisualStyleRenderer类,因此我需要以其他方式获取renderer.Handle 。

在Office 2010等WPF应用程序中,如何对Aero glass进行渐变淡化?

我正在WPF中编写一个应用程序,我希望应用程序的顶部从一个颜色逐渐淡化到Aero玻璃,就像Office 2010应用程序一样。 真的,它会使标题栏下方的区域从玻璃变为彩色。 (我认为这可能是一种更好的描述方式)。

如何以编程方式更改Windows 7 Aero / Window边框颜色?

我正在考虑制作一个程序,根据电池电量改变Windows 7的航空颜色。 我是c#的新手,我想知道如何以编程方式更改Windows 7 Aero 我有这个代码 [DllImport(“dwmapi.dll”, EntryPoint = “#127”, PreserveSig = false)] public static extern void DwmGetColorizationParameters(out WDM_COLORIZATION_PARAMS parameters); [DllImport(“dwmapi.dll”, EntryPoint = “#131”, PreserveSig = false)] public static extern void DwmSetColorizationParameters(WDM_COLORIZATION_PARAMS parameters, uint uUnknown); public struct WDM_COLORIZATION_PARAMS { public uint Color1; public uint Color2; public uint Intensity; public uint Unknown1; public uint Unknown2; public […]

C#中自定义形状的Aero Windows? 像这些!

如何制作像这样的不规则形状的Aero窗口? 看右下角! 这个程序也做到了。 这也是这样的! > _ <更多……

没有Aero Glass的DwmExtendFrameIntoClientArea

使用启用Aero Glass的DwmExtendFrameIntoClientArea API调用可以正常工作。 但是,我希望它也可以在Aero Glass被禁用时工作,就像它在Windows控制面板中的工作方式一样: 请注意框架已扩展到客户区域,即使Aero Glass已禁用? 当我在我的应用程序中进行DwmExtendFrameIntoClientArea API调用时,返回的HRESULT肯定不成功,我的应用程序最终看起来像这样: http://img197.imageshack.us/img197/9629/clientapplication.png 通常,启用Aero Glass后,边框会向下延伸到导航按钮下方,就像在控制面板中一样。 我该怎么做呢? DwmExtendFrameIntoClientArea显然无法正常工作。 顺便说一句,如果它是相关的,我的应用程序是一个WPF应用程序。

在没有WPF的扩展Glass Frame中绘制TextBox

我试图在我的表格的扩展玻璃框架上绘制一个TextBox。 我不会描述这种技术,它是众所周知的。 以下是那些没有听说过的人的例子: http : //www.danielmoth.com/Blog/Vista-Glass-In-C.aspx 问题是,绘制这个玻璃框架是很复杂的。 由于黑色被认为是0-alpha颜色,因此任何黑色都会消失。 显然有一些方法可以解决这个问题:绘制复杂的GDI +形状不受此alpha-ness的影响。 例如,此代码可用于在玻璃上绘制标签(注意:使用GraphicsPath代替DrawString以解决可怕的ClearType问题): public class GlassLabel : Control { public GlassLabel() { this.BackColor = Color.Black; } protected override void OnPaint(PaintEventArgs e) { GraphicsPath font = new GraphicsPath(); font.AddString( this.Text, this.Font.FontFamily, (int)this.Font.Style, this.Font.Size, Point.Empty, StringFormat.GenericDefault); e.Graphics.SmoothingMode = SmoothingMode.HighQuality; e.Graphics.FillPath(new SolidBrush(this.ForeColor), font); } } 类似地,这种方法可用于在玻璃区域上创建容器。 请注意使用多边形而不是矩形 – 使用矩形时,其黑色部分被视为alpha。 public […]