Articles of wpf

最小化WPF中的窗口?

如何在使用Windows WPF时以编程方式最小化窗口? 我似乎可以find.Resize属性?

WPF RibbonWindow + Ribbon =标题外屏?

我正在试用Ribbon控制与RibbonWindow结合使用,但是即使在微不足道的实验中也是如此。 创build了新的WPF应用程序 将代码更改为MSDN中的示例 添加了对System.Windows.Controls.Ribbon引用,并删除了ribbon:前缀(为什么示例过时?)。 增加了两个图标(16×16和32×32)。 执行了应用程序,看到了这个(记事本供参考): 我已经可以看到很多问题了: 边界很小。 一个正常的窗口有一个大的边框,WPF Ribbon应用程序很小。 标题高度也较小。 边框模糊。 当一个正常的窗口被聚焦时,它的边界是黑色的。 WPF应用程序的边框是灰色的(黑色可以在angular落看到;有东西是在边界上绘制的)。 应用程序图标放错了位置。 它粘在左上angular。 应用程序标题错位。 它粘在顶部。 让我们把工具栏移到底部。 现在我们看到这个: button在工具栏之外。 最后,让我们最大化的窗口: 一半的标题消失在屏幕之外(技术上,窗口在屏幕的外侧每边8像素,但其他应用程序不会被这个混淆)。 我正在使用Windows 7,Aero,单个显示器,没有什么特别的。 我害怕在Windows 8上testing应用程序… 有什么机会解决这个问题?

Environment.SpecialFolder.ApplicationData返回错误的文件夹

我有一个奇怪的问题:我的.NET 4.0 WPF应用程序正在将数据保存到ApplicationData文件夹。 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\myProgram\\"; 99.9%的案例工作得很好,但在一些电脑上,它返回错误的文件夹 – 而不是返回用户文件夹它返回另一个文件夹: C:\Users\<user>\AppData\Roaming\myProgram\ –correct C:\Users\s\AppData\Roaming\myProgram\ –wrong 错误的文件夹没有写/读权限,所以我的程序无法正常工作。 看来程序运行在不同的用户下,但是如果我检查任务pipe理器,用户是已login的用户。 问题似乎发生在域用户权限很less的情况下。

我如何使用正确的Windows系统颜色?

我想使用XAML来设置WPFbutton的样式,使其看起来像这些Windows 7通知区域popup窗口的“混音器”和“更改date和时间设置…”文本。 SystemColors属性是否定义了该颜色? 哪一个? <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.????}}" />

如何在WPF应用程序中设置TextBlock和Label的默认颜色,字体系列和字体大小?

编辑:我想这个问题没有说得很清楚。 它实际上由四个独立的组成: 如果客户端应用程序没有提供任何样式,或者以编程方式或通过xaml, TextBlock如何获得其默认颜色? Label如何获得其默认颜色? 如果客户端应用程序不提供任何样式,或者以编程方式或通过xaml, TextBlock如何获得其默认字体大小和字体系列? Label如何获得其默认的字体大小和字体系列? 顺便说一句,这些问题不是关于如何改变或定义TextBlock或Label的颜色/字体大小/字体族的样式,尽pipe它们在某种程度上是相关的。 我想我已经知道#2的答案,那就是一个Label从SystemColors.ControlTextBrushKey中获取它的颜色,并通过重写ConrolTextBrushKey如下所示: <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="Red"/> 您将能够“全局”更改Label的颜色。 经过一番研究之后,我想我也可以find#1的答案: TextBlock从其包含的Windowinheritance前景色,默认从SystemColors.WindowTextBrushKey获取Foreground 。 通过为WindowTextBrush定义颜色,如下所示: <Window.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.WindowTextBrushKey}" Color="Yellow"/> </Window.Resources> 您将能够更改Window内TextBlock的“前景”颜色。 问题#3和#4对我来说仍然是困惑,但我假设他们必须做SystemFonts 。 希望这是有道理的。 我真的很想知道答案,因为他们一直在困扰我。 非常感谢! 以下是原文: 如果您查看Windows附带的主题(例如“aero.normalcolor.xaml”)中Label的样式,则可以查找 <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> 其中设置Label的颜色。 但是在style中没有指定FontSize属性,我认为这与SystemFonts有关 。 对于TextBlock ,它看起来更加神秘,因为“aero.normalcolor.xaml”中的样式只有4行: <Style x:Key="{x:Type TextBlock}" TargetType="{x:Type TextBlock}"> <Setter Property="TextWrapping" Value="NoWrap"/> <Setter Property="TextTrimming" Value="None"/> </Style> […]

释放在WPF中创build的命名互斥体Application.OnStartUp():哪个线程拥有它?

我在WPF应用程序的OnStartup方法中创build一个互斥体。 该程序中没有使用互斥锁,它的唯一目的是防止某些程序同时运行。 如何在应用程序closures时释放此互斥锁? 根据文档 , mutex.ReleaseMutex()必须从创build互斥体的同一线程调用。 然而,这提出了一个问题,因为我不控制调用OnStartup()的线程。 假设我的OnStartup方法如下所示: public partial class App : Application { private Mutex mutex; private bool hasHandle = false; protected override void OnStartup(StartupEventArgs e) { bool createdNew; mutex = new Mutex(false, @"Global\XYZ", out createdNew); try { hasHandle = mutex.WaitOne(5000, false); if (!hasHandle) {/*do stuff*/}; } catch (AbandonedMutexException) { hasHandle = true; […]

WPF:如何在对话单元中指定单位?

我想弄清楚如何使用适当的对话单元 (DLUs)在WPF中布局一个简单的对话框。 什么是对话单元? 对话框是基于用户首选字体大小的度量单位。 一个对话单元定义为平均字符宽度为4个对话单位,高8个对话单位: 这意味着对话单元: 改变选定的字体 更改为选定的DPI设置 不是方的 我花了大约两个小时从Windows Vista中select这个示例对话框,并使用各种dlu测量。 有人可以给出产生这个对话框的相应的XAML标记吗? 替代文字http://i44.tinypic.com/30a7390.jpg ( 图片链接 ) 无可否认,我对WPF XAML几乎一无所知。 每当我开始时,我都会因为无法弄清楚如何放置任何控制而受到阻碍。 似乎WPF中的一切都必须包含在某种types的面板中。 有StackPanels,FlowPanels,DockPanel, 网格等,如果你没有其中之一,那么它不会编译。 到目前为止,我唯一能够想到的XAML(使用XAMLPad): <DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Image Width="23" /> <Label>Are you sure you want to move this file to the Recycle Bin?</Label> <Image Width="60" /> <Label>117__6.jpg</Label> <Label>Type: ACDSee JPG Image</Label> <Label>Rating: Unrated</Label> <Label>Dimensions: 1072 × […]

如果wpf应用程序没有响应,然后自动重启

我有一个偶尔崩溃的WPF应用程序,并说“没有回应”。 有没有办法来检测程序是否没有响应? 如果是的话,重新启动WPF应用程序? 这将是一个临时的修复,直到错误修复。

我如何移动粘贴/贴紧wpf窗口

当我移动一个“主”窗口时,我想移动两个或更多的粘性窗口 我想要做这样的事情 private void MainWindow_PreviewMouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { this.DragMove(); foreach (var window in App.Current.Windows.OfType<Window>()) { window.Move(); // move it } } } 我想用这个解决scheme来捕捉窗口 用于WPF的捕捉/粘滞/磁性窗口http://programminghacks.net/2009/10/19/download-snapping-sticky-magnetic-windows-for-wpf/ 但是我怎样才能移动它? 编辑 在Gustavo Cavalcanti的回复之后,我提了几个想法。 这是我的问题的粗略解决scheme。 using System.Windows; using System.Windows.Data; namespace DragMoveForms { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 […]

作为Windows服务运行WPF应用程序

我们正在开发一个Windows Presentation Foundation应用程序,我们希望能够作为Windows服务运行。 任何人做了这样的事情? 可能吗? 我们不需要与桌面或任何GUI进行交互,只需要一个可以使用GUI运行的应用程序,从命令行(运行)或作为服务即可。 期待有趣的input:-)