本文将为您提供关于win10的wpf窗口定位错误的详细介绍,我们还将为您解释wpf窗口位置的相关知识,同时,我们还将为您提供关于.net–启动时完全隐藏WPF窗口?、.net–没有WindowsMed
本文将为您提供关于win10的wpf窗口定位错误的详细介绍,我们还将为您解释wpf 窗口位置的相关知识,同时,我们还将为您提供关于.net – 启动时完全隐藏WPF窗口?、.net – 没有Windows Media Player 10的WPF中的媒体支持?、c# – 为什么在MainWindow关闭后不会自动处理和收集WPF窗口?、c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?的实用信息。
本文目录一览:- win10的wpf窗口定位错误(wpf 窗口位置)
- .net – 启动时完全隐藏WPF窗口?
- .net – 没有Windows Media Player 10的WPF中的媒体支持?
- c# – 为什么在MainWindow关闭后不会自动处理和收集WPF窗口?
- c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?
win10的wpf窗口定位错误(wpf 窗口位置)
我在Windows 10中遇到了一个窗口定位错误(?)。 我已经在WPF中重现了这一点。 比方说,我创build一个如下窗口:
var d = new Window(); d.Width = 100; d.Height = 100; d.Left = 1000; d.Top = 100; d.WindowStyle = WindowStyle.None; d.ResizeMode = ResizeMode.noresize; d.Show();
我在1920×1080的分辨率,所以我希望窗口的左侧正好在1000px的中心(如在Windows 8中),但事实并非如此。 通过testing(通过hover鼠标,抓取鼠标坐标以及通过使用PointToScreen进行testing),它显示窗口的X(左)位置实际上是1250,Y(顶)位置是125.所以坐标被调整了25%。 但是,如果您检查Window.Left属性,它仍然说1000实际上位于1250的窗口。
我立即去窗口中寻找显示设置,我发现这个:
控制从C#应用程序的其他窗口
我可以用什么软件或服务以编程方式拨打电话?
Windowssearchsql:LIKE语句中的分号导致exception(E_FAIL 0x80004005)
将Visual Studio 2005 sln迁移到2008,在LIB环境variables中使用vc98path警告,如何解决?
StringCollection编辑器不存储用户input的值
所以我想,如果这是罪魁祸首,这只是一个如何检测这个问题,除了我发现,即使改为100%,而不是125%,实际上没有改变 ,错误仍然是相同的。
所以有其他人遇到这个bug,如果这是一个窗口显示设置的问题,有什么办法来检测它?
如何在Windows窗体中暂停backgroundWorker
给定一个IntPtr句柄,改变窗口的背景颜色
Windows服务应用程序挂起
我如何获得所有进程的打开句柄集
SSL支持Rabbit + .Net + Windows
在Cyral的帮助下,在这个问题的评论中,找到DPI是这样的:
var dpiX = (int)typeof(SystemParameters).GetProperty("DpiX",BindingFlags.NonPublic | BindingFlags.Static).GetValue(null,null); var dpiY = (int)typeof(SystemParameters).GetProperty("Dpi",null);
然后进行校正: [Desired Pixel Coordinate] * (96 / [dpi])
这是由于WPF使用DPI和虚拟像素进行布局而不是物理像素。
.net – 启动时完全隐藏WPF窗口?
我怎么能意识到?
谢谢!
<Window x:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" ShowInTaskbar="False" Visibility="Hidden"> <Grid> </Grid> </Window>
.net – 没有Windows Media Player 10的WPF中的媒体支持?
这是上下文.我有一个在企业企业环境中运行的WPF应用程序. WPF要求Windows Media Foundation支持富媒体. Windows Media Foundation通过Windows媒体播放器10和11进行分发.WMP 10/11的企业发布时间表在未来太遥远,让我等待.但是因为我不需要整个播放器基础设施,只需要媒体基础,我想知道是否有办法只部署该组件.
解决方法
我确实有另一种选择.我的项目“WPF MediaKit”.我有一个名为MediaUriElement的WPF控件,类似于MediaElement.它根本不需要WMP.缺点是它确实使用仅在.NET 3.5 SP1中可用的d3dimage类.
c# – 为什么在MainWindow关闭后不会自动处理和收集WPF窗口?
>在新的WPF应用程序中添加新窗口.
>添加以下代码:
public MainWindow() { InitializeComponent(); //add code Window1 w1 = new Window1(); //following is in my actual project DataContext = new AllUserQueryiesviewmodel(new CommonQueryTestSubWindow()); }
>运行并关闭MainWindow.
到那时,我希望应用程序关闭,但我的VS2010似乎仍在运行.那么为什么以及如何解决呢?
——— —————–更新
我想我最好在我的真实项目中表达自己的风景,让你更好地理解我的原因
这个.考虑查询列表和打开查询功能,就像TFS工作项查询一样.
我正在创建一些usercontrol来执行此操作,我们团队中的其他人可以在同一个应用程序中使用.查询列表和打开的查询是单独的用户控件,因此用户(其他程序员)可以将打开的查询放在他们想要的任何地方(ContentControl).
viewmodels:
public class AllVM { public AllVM(IOneVMContainer container) { OneVMs = new ObservableCollection<OneVM>() { new OneVM(container),new OneVM(container) }; } public ObservableCollection<OneVM> OneVMs { get; set; } public OneVM SelectedOneVM { get; set; } public void OpenOne() { SelectedOneVM.open(); } } public class OneVM { IOneVMContainer container; public OneVM(IOneVMContainer container) { this.container = container.NewInstance(); } //I want to open and close the view from viewmodel public void open() { container.GetContentCtl().Content = this; container.Show(); } public void Close() { container.Close(); } }
要在viewmodel中打开和关闭视图,我创建了这样的界面
//Is it good to use interface? //Maybe a better interface? public interface IOneVMContainer { IOneVMContainer NewInstance(); void Show(); void Close(); ContentControl GetContentCtl(); }
使用上面的viewmodels:
//my usercontrol to hold AllVM public AllUC() { InitializeComponent(); DataContext = new AllVM(new OneContainerWindow()); } //implement by other team members public partial class OneContainerWindow : Window,IOneVMContainer { public OneContainerWindow() { InitializeComponent(); } public IOneVMContainer NewInstance() { return new OneContainerWindow(); } public ContentControl GetContentCtl() { return contentCtl1; } }
所以我想知道在viewmodel中存储一个窗口是不可避免的,这会导致主要问题.我知道你必须有更好的解决方案,请帮忙.
解决方法
很不清楚为什么你会考虑这样做,但一个解决方法是强制调度程序循环在主窗口关闭时退出:
protected override void OnClosed(EventArgs e) { base.OnClosed(e); Application.Current.dispatcher.InvokeShutdown(); }
还有很多其他的,比如将“w1”作为类的一个字段,这样就可以调用它的Close()方法.或者使它成为一个拥有的窗口,以便它与主窗口同时消失.或者显示它以便用户可以控制应用程序中的窗口.随便挑选.
c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?
这个代码似乎在一个示例项目中没有任何问题:
public partial class WinFormsForm1 : Form { public WinFormsForm1() { InitializeComponent(); } private void button1_Click(object sender,EventArgs e) { WpfWindow1 w = new WpfWindow1(); w.Show(); } }
该表格从Main()作为正常的Winforms窗体启动:
Application.Run(new WinFormsForm1());
这似乎对我来说太容易成为现实.这有什么缺点吗?这是安全吗?
解决方法
在显示WPF窗口之前,需要添加EnableModelessKeyboardInterop方法调用:
WpfWindow1 w = new WpfWindow1(); System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(w); w.Show();
ElementHost resides in WindowsFormsIntegration.dll.
进一步阅读:http://msdn.microsoft.com/en-us/library/aa348549.aspx
今天的关于win10的wpf窗口定位错误和wpf 窗口位置的分享已经结束,谢谢您的关注,如果想了解更多关于.net – 启动时完全隐藏WPF窗口?、.net – 没有Windows Media Player 10的WPF中的媒体支持?、c# – 为什么在MainWindow关闭后不会自动处理和收集WPF窗口?、c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?的相关知识,请在本站进行查询。
本文标签: