GVKun编程网logo

win10的wpf窗口定位错误(wpf 窗口位置)

13

本文将为您提供关于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 窗口位置)

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窗口?

.net – 启动时完全隐藏WPF窗口?

我希望我的窗口完全隐藏在启动时。没有窗口,任务栏中没有条目。用户看不到,应用程序启动。

我怎么能意识到?

谢谢!

H.B.的方法的替代方法只是将可见性设置为隐藏并将ShowInTaskbar设置为false。这仍然创建窗口,让它做它的事情。
<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中的媒体支持?

.net – 没有Windows Media Player 10的WPF中的媒体支持?

我想知道是否有可能在没有 Windows Media Player 10或11的情况下部署Windows Media Foundation?

这是上下文.我有一个在企业企业环境中运行的WPF应用程序. WPF要求Windows Media Foundation支持富媒体. Windows Media Foundation通过Windows媒体播放器10和11进行分发.WMP 10/11的企业发布时间表在未来太遥远,让我等待.但是因为我不需要整个播放器基础设施,只需要媒体基础,我想知道是否有办法只部署该组件.

解决方法

Media Foundation是一种仅限Vista的技术,据我所知,它将来会取代DirectShow. WPF需要WMP v10的原因是因为milcore在内部使用WMP OCX. WMP v10 OCX功能允许milcore使用增强型视频渲染器(EVR),后者又使用自定义演示器直接渲染到D3D表面并最终呈现在WPF中.在Vista中,如果支持媒体(即WMV文件),WMP将在DirectShow上使用Media Foundation路径.

我确实有另一种选择.我的项目“WPF MediaKit”.我有一个名为MediaUriElement的WPF控件,类似于MediaElement.它根本不需要WMP.缺点是它确实使用仅在.NET 3.5 SP1中可用的d3dimage类.

c# – 为什么在MainWindow关闭后不会自动处理和收集WPF窗口?

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中存储一个窗口是不可避免的,这会导致主要问题.我知道你必须有更好的解决方案,请帮忙.

解决方法

只要您的应用程序仍具有实时Window实例,WPF调度程序循环就会一直运行.你的Window1对象.事实上它是不可见的,因为你从来没有调用它的Show()方法,并且你永远不能自己关闭窗口,因为你丢失了对窗口的引用并没有改变那个结果.

很不清楚为什么你会考虑这样做,但一个解决方法是强制调度程序循环在主窗口关闭时退出:

protected override void OnClosed(EventArgs e) {
        base.OnClosed(e);
        Application.Current.dispatcher.InvokeShutdown();
    }

还有很多其他的,比如将“w1”作为类的一个字段,这样就可以调用它的Close()方法.或者使它成为一个拥有的窗口,以便它与主窗口同时消失.或者显示它以便用户可以控制应用程序中的窗口.随便挑选.

c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?

c# – 从WinForms窗体显示WPF窗口是绝对安全的吗?

我想从 Windows窗体应用程序(.NET 3.5)显示一个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窗口将为 not get keyboard input.

在显示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窗口是绝对安全的吗?的相关知识,请在本站进行查询。

本文标签: