2012-11-30 43 views
0

出於某種原因,我無法讓我的Winform用戶控件適合WindowsFormsHost。下面是我使用的XAML:Winform UserControl和wpf WindowsFormHost:UserControl離開WindowsFormHost的邊緣

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="326*" /> 
    <ColumnDefinition Width="300*" /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="264*" /> 
    <RowDefinition Height="100*" /> 
    <RowDefinition Height="50*" /> 
    </Grid.RowDefinitions> 
    <WindowsFormsHost Grid.Row="1" 
         Grid.Column="0"> 
    <winforms:ServicesUserControl x:Name="servicesUserControl" 
            UserCanEditRevenue="True" 
            BorderStyle="Fixed3D"> 
    </winforms:ServicesUserControl> 
    </WindowsFormsHost> 
</Grid> 

這裏有一個截圖顯示了我的意思:

原來這裏是用戶控制: enter image description here

但是,當我把它放在一個WindowsFormHost我得到這個: enter image description here

回答

0

除非UserControl有自己的邏輯來調整列的大小,UserControl的寬度將被綁定到它的列的寬度。我會嘗試在ScrollViewer中實現WinFormsHost,如果這將是一個可接受的佈局。

<ScrollViewer Grid.Row="1" 
       Grid.Column="0"> 
    <WindowsFormsHost> 
    <winforms:ServicesUserControl x:Name="servicesUserControl" 
            UserCanEditRevenue="True" 
            BorderStyle="Fixed3D" /> 
    </WindowsFormsHost> 
</ScrollViewer> 
+0

我要給你這個答案,因爲你第一次說什麼。它以迂迴的方式解決了我的問題。我最終轉到原始用戶控件,並調整其中的網格控件大小以適應完整的用戶控件,並調用Dock和Location屬性。這工作。 –