草庐IT

.net - 适应屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单元相关联?)

在MFC中,对话框是使用DLUs设计的.在WPF中,我们以1/96英寸为单位指定。虽然这确实会缩放窗口和可视元素,但我们如何让WPF“尊重”用户的当前字体设置?我们是否应该指定要使用的某种字体并坚持使用该字体?如何布局“行为良好的应用程序”调整窗口大小以适应当前的字体设置和分辨率为小屏幕优雅地重排/布局窗口/文本。任何帮助或指南将不胜感激?(Windows用户体验指南清楚地说明应该发生什么,但现在如何在WPF中实现它)。 最佳答案 我们通过将字体大小和样式设置应用于WPFUI中的所有文本对象来处理此问题。这可以在运行时完成,也可以即

c# - Windows 和/或用户控件之间通信的模式/方法

我目前正在开发一个应用程序,我将使用C#和WPF打开多个窗口。是否有一种模式或通用方法可用于帮助促进打开的Windows或/和UserControl之间的通信?例如,一个窗口,我们称它为“层次结构窗口”,可能会显示世界上国家、省份和城市的层次结构。除此之外,还有几个其他窗口可以显示省或市,例如OR允许您创建省或市。在创建新城市的情况下,我的“城市窗口”与我的“层次结构窗口”就添加城市或删除城市进行沟通的最佳方式是什么?请记住,创建城市时甚至可能不会打开“层次结构窗口”。此时,无需响应/操作。 最佳答案 有两种常见的方法:使用依赖注入

windows - 如何将 Direct3D/WPF/DWM 窗口捕获到位图中?

捕获窗口图像的正常方法是调用:HDCSharedWndDC=GetWindowDC(SharedWnd);BitBlt(BitmapDC,0,0,width,height,SharedWndDC,0,0,SRCCOPY/*|CAPTUREBLT*/);ReleaseDC(SharedWnd,SharedWndDC);在运行DWM的系统上,它可以很好地捕获有问题的窗口,即使它被其他窗口重叠或部分离开屏幕,等等。但是,它在某些窗口(可能是那些使用WPF的窗口)上无法正常工作,并且会对玻璃区域产生一些有趣的影响。基本上,GDI捕获不适用于非GDI事物。我知道我真正想要的是获取Direct3D

c# - Windows 8 桌面应用程序中的功能区菜单

好吧,在使用Windows7的大部分时间里,实现功能区菜单是一件痛苦的事情。我确实希望在VisualStudioUltimate2012RC中看到对它的全面支持。因为MS似乎很想插入它。如何使用VS2012UltimateRC将功能区菜单(原始/默认/普通菜单-不是某些第三方菜单)添加到我的Windows8WinForms或WPF桌面应用程序?我确实搜索了每一个我能找到的看起来甚至有点相关的网站,但没有找到任何运气。非常感谢任何帮助谢谢 最佳答案 Thismsdnlinkwillprovideyouwiththe"gettingst

c# - Windows如何获取已经运行的进程的进程组?

我有一个使用Process.Start(ProcessStartInfoinfo)启动新进程的WPF应用程序。如何获取进程的组进程ID,以便我可以使用GenerateConsoleCtrlEvent发送Ctrl+C信号?https://msdn.microsoft.com/en-us/library/windows/desktop/ms683155%28v=vs.85%29.aspx但是,我在创建的新进程中似乎找不到控制台窗口的组进程ID。它有当前Windows用户的sessionID和进程ID。编辑:我终于让我的程序运行了,但我仍然没有找到真正问题的真正答案。我能够通过使用Gener

c# - 在 WPF .NET Framework 中使用自定义任务管理器时,如何防止进程重复?

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSystem.Windows.Media;usingSystem.Windows.Media.Imaging;

c# - 如何在 WPF 列表框中禁用 Windows 声音?

我在WPF中制作了一个带样式的列表框,每当有人在我的列表框中单击一个元素或按下箭头键时,Windows就会播放它的“选择声音”。这在这个特定的列表框中不合适,我该如何禁用它?或者如何禁用我的WPF应用程序发出的所有“默认声音”/系统声音? 最佳答案 经过大量搜索并尝试在测试应用程序中重现它;我发现它实际上是一个Frame控件引起了声音。我在这里找到了答案TurnoffnavigationpagesoundinWPFFramecontrol然而,这并不适用于我测试过的所有计算机。我现在将Frame替换为Border,因为我不需要导航。

c# - 覆盖系统快捷键

我的一个friend在键盘上使用双手有困难。他总是只用左手。他让我编写一个C#程序来向系统发送组合键,以便它覆盖默认的快捷键。例如他想用Ctrl+L替换LWin+D这样当他按下Ctrl+L会显示他的桌面。我该怎么做? 最佳答案 您可以使用RegisterHotKeyAPI函数。参见here有关将其与C#结合使用的说明。 关于c#-覆盖系统快捷键,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

Wpf 工具窗口样式应用程序在 alt+tab 中不可见

我有一个WPF应用程序不是工具窗口的主窗口从主窗口启动一个具有WindowStyle="ToolWindow"ShowInTaskbar="False"的子窗口现在主窗口和子窗口在Alt+Tab中都不可见。[子窗口不出现在alt+tab中是预期行为,但主窗口应该可见]如有任何帮助,我们将不胜感激。相关链接:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/95e076a3-3030-4dc0-ab23-a7e489b2a160 最佳答案 当使用Show时,它在我的机器(

.net - 使 Windows 应用程序始终位于其他窗口之上并处于焦点位置 - 始终

我正在创建一个kiosk应用程序,我想确保它无论如何始终位于其他Windows应用程序和Windows任务栏之上。我已经阻止了Windows键盘命令(alt-tab等),但仍有可能导致应用程序启动并窃取屏幕的情况。是否可以从.NET挂接到Windows并持续测试应用程序是否具有焦点并位于顶部,如果没有,则为其提供焦点并使其位于顶部? 最佳答案 我实际上在生产信息亭上工作过(不过它是Windows2000)。解决方案是将我们的应用程序作为shell运行。您可以通过在Shell值中用您的应用程序替换Explorer.exe来部分完成此操