2016-07-23 7 views
1

Wpf UserControlを作成し、WinFormでホストしています。WinFormでWPFコントロールでスペース全体を埋めることができません

<UserControl x:Class="Sapphire.WpfUserControl" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" Height="527" Width="992"> 
<Canvas x:Name="videoCanvas" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" > 
    <Label Canvas.ZIndex="2" Content="Label" Canvas.Left="165" Canvas.Top="50" Width="125" Foreground="#FFFFFEFF"/> 
    <MediaElement x:Name="videoElement" Canvas.ZIndex="1" Canvas.Left="10" Canvas.Top="10" /> 
</Canvas> 

このWPFコントロールがHostElementによってホストされているデザイナーのファイルに示されているように:

  // 
     // elementHost1 
     // 
     this.elementHost1.Dock = System.Windows.Forms.DockStyle.Fill; 
     this.elementHost1.Location = new System.Drawing.Point(0, 0); 
     this.elementHost1.Name = "elementHost1"; 
     this.elementHost1.Size = new System.Drawing.Size(1130, 593); 
     this.elementHost1.TabIndex = 2; 
     this.elementHost1.Text = "elementHost1"; 
     this.elementHost1.Child = this.wpfUserControl1; 

は、だから、すべて正しく見えます。 DockStyleがFillであることもわかります。 しかし、WPFコントロールはWinForm全体を占めず、デザイナで設定されて表示されたサイズのものが常に表示されます。

誰かが私がここで間違ってやっているものを指摘することができれば、私は感謝し

...私はキャンバスが含まれていることをキャンバスからとMediaElementの両方から高さと幅を削除しますが、それは何の効果も持っていなかった - 私はWPFの新機能です。あなたが含むElementHostコントロールに含まれる要素の大きさとなるよう<UserControl>WidthHeightを削除する必要が

+0

http://stackoverflow.com/questions/19393774/how-to-make-all-controls-resize-accordingly-proportionally-when-window-is-maximi –

+0

私はあなたがそのコードを指すことによって何をすることを示唆しているのか分かりません - 私は特定の問題があり、私が間違っていることを理解していません...あなたのコードと比較するのは正確にリンゴとリンゴではありません: 、 ではない? –

答えて

0

<UserControl x:Class="Sapphire.WpfUserControl" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d"> 

あなたはデザイナーで特定のサイズが必要な場合は、あなたがd:DesignHeightを使用することができますし、 d:DesignWidth属性:

<UserControl x:Class="Sapphire.WpfUserControl" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" d:DesignHeight="527" d:DesignWidth="992"> 
+0

私はちょうどあなたが示唆した通りにしましたが、それは助けになりませんでした... –

+0

私が観察した情報の別の部分: 寸法を大きくした場合: mc:Ignorable = "d" d:DesignHeight = "800" d:DesignWidth = "1900" これはデザイナーには反映されていますが、実行時には反映されません。画面上の寸法は以前と変わりません...だから、どこが犯人なのだろうか... –

+0

BTW、Auto(1900)それぞれ幅と高さの自動(1060)... –

関連する問題