对于我的一些活动,我希望它完全折叠,以便在用户折叠其设计器时仅显示标题栏。默认情况下,如果您使用可折叠设计器的标准方式(在 ShowExpanded 上使用 datatrigger),您仍然会在标题栏下方看到一个空白矩形 - 至少在带有 .NET 4.0.3 的 Win7 上
我希望它像上面显示的延迟活动一样显示,标题下方没有任何框。
在我看来,这个烦人的白框是由资源WorkflowElementDesignerDefaultTemplate中定义的默认模板引起的,该模板有一个 Margin="7" 的 ContentPresenter:
<ContentPresenter x:Uid="ContentPresenter_1" Margin="7" Content="{Binding Path=Content, RelativeSource={RelativeSource AncestorType={x:Type swd:WorkflowViewElement}}}" Grid.Row="1">
<ContentPresenter.Style>
<Style x:Uid="Style_10">
<Setter x:Uid="Setter_204" Property="ContentPresenter.Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger x:Uid="DataTrigger_237" Binding="{Binding Path=Content, RelativeSource={RelativeSource AncestorType={x:Type swd:WorkflowViewElement}}}" Value="{x:Null}">
<Setter x:Uid="Setter_213" Property="ContentPresenter.Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentPresenter.Style>
</ContentPresenter>
因此,即使我们在活动设计器 XAML 中定义的包含的内容完全折叠,这个 7 的边距仍然会显示出来。
有什么办法可以避免吗?当设计器显示为折叠时,将边距设置为 0(甚至更好,从默认模板触发包含 ContentPresenter 的 Visibility=Collapsed)?
(我希望这不会太混乱?)