Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Directshow视频播放器更改播放器大小_C#_Winforms_Video_Directshow_Directshow.net - Fatal编程技术网

C# Directshow视频播放器更改播放器大小

C# Directshow视频播放器更改播放器大小,c#,winforms,video,directshow,directshow.net,C#,Winforms,Video,Directshow,Directshow.net,我构建了一个简单的表单,可以使用direct show库中的功能播放视频。视频在用户控件的面板中播放,该控件以非常简单的形式封装。我想知道是否有任何方法可以让视频随着表格的大小进行缩放。我尝试在表单中锚定控件(使用dock)并将自动重新调整大小设置为true。我觉得应该有一些简单的解决办法,但我没有想到。我知道这是非常普遍的,但我非常感谢任何类型的帮助,以及这是否可行。您需要更新视频位置以及表单大小(IVMRWindowlessControl9.SetVideoPosition和类似内容)。Di

我构建了一个简单的表单,可以使用direct show库中的功能播放视频。视频在用户控件的面板中播放,该控件以非常简单的形式封装。我想知道是否有任何方法可以让视频随着表格的大小进行缩放。我尝试在表单中锚定控件(使用dock)并将自动重新调整大小设置为true。我觉得应该有一些简单的解决办法,但我没有想到。我知道这是非常普遍的,但我非常感谢任何类型的帮助,以及这是否可行。

您需要更新视频位置以及表单大小(
IVMRWindowlessControl9.SetVideoPosition
和类似内容)。DirectShow.NET示例执行此操作:

\Samples\VMR9\BitmapMixer\MainForm.cs

private void MainForm_ResizeMove(object sender, EventArgs e)
{
    if (windowlessCtrl != null)
    {
        int hr = windowlessCtrl.SetVideoPosition(null,
           DsRect.FromRectangle(this.ClientRectangle));
    }
}

没有完全使用这个,但将其作为解决方案的更好起点。谢谢@IanPanzica,请问您的解决方案是什么?@CJBrew我能够在播放器类中找到一个函数ConfigureVideoWindow,每当控件调整大小时,我都会调用它,它的大小基于视频所在的面板。