2017-01-31 33 views
0

我有我在這裏使用的方法轉換爲圖像的控制:轉換爲圖像WPF XAML控制具有不正確的佈局

Force rendering of a WPF control in memory

不幸的是我有一個複雜的佈局,似乎控制'Collapsed'實際上並沒有正確隱藏在輸出圖像中。

嘗試:

  • 呼叫UpdateLayout多次
  • 控制的
  • 變化大小的1個像素
  • 使用視框

看來如果事情是底端對齊影響DockPanel中並用轉換器隱藏。

<DockPanel LastChildFill=True> 
    <Something Dock.Panel="Top" /> 
    <Something Dock.Panel="Bottom" Binding="{Binding XXXXX, Converter={StaticResource booleanConverter}}"/> 
    <Something Dock.Panel="Bottom" Binding="{Binding YYYYY, Converter={StaticResource booleanConverter}}"/> 
    <Something /> 
</DockPanel> 

一切都顯示就好在XAML編輯器,或者如果它在一個真正的可視控制在運行時使用。

回答

0

最後,我不得不使用觸發器將高度設置爲零,而不是將Collapsed應用於元素。當然這意味着任何邊距都必須轉換爲填充,如果需要,可以使用嵌套面板。

在這種情況下我有一個邊框控制 - 所以我不得不移除Visibility屬性並改用這個觸發器。

<Border> 
     <Border.Style> 
      <Style> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding XXXXX, Converter={StaticResource booleanConverter}}" Value="true"> 
         <Setter Property="Border.Height" Value="0" /> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Border.Style> 
    </Border>