如何完全折叠自定义活动设计器(标题下方没有白框)?

时间:2013-04-09 18:08:19

标签: workflow-foundation-4 activitydesigner

对于我的一些活动,我倾向于将其完全折叠,以便在用户折叠其设计器时显示标题栏。默认情况下,如果您使用standard way of a collapsible designer(在ShowExpanded上使用datatrigger),您仍然会在标题栏下面找到一个空的白色矩形 - 至少在带有.NET 4.0.3的Win7上

Screenshot

我希望它显示为上面显示的延迟活动,标题下方没有任何框。

在我看来,这个烦人的白盒子是由资源 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)?

(我希望这不是太混乱?)

1 个答案:

答案 0 :(得分:0)

从你的片段中我无法确切地说出你在做什么。

无论如何,请检查this设计师。

基本上你要有两个<DataTemplate>,一个用于折叠模式,另一个用于扩展模式。我想这个链接的例子是不言自明的。