0

我正在尝试创建一个菜单系统,该系统在面板被视觉状态更改关闭之后但在面板重新打开之前(想想滑入/滑出过滤器)更改面板的内容模板。我希望使用数据触发器的组合来实现这一点,但我并不高兴:(为简洁起见,省略了一些代码,但我的触发器设置如下所示:

<ContentControl x:Name="contentControl" Content="{Binding SelectedThing}"
                                DataContext="{Binding}" Width="200">
                    <ContentControl.ContentTemplate>
                        <DataTemplate>
                          <ContentControl Name="cc"
                                          Content="{Binding}" />
                            <DataTemplate.Triggers>

                                <MultiDataTrigger>
                                    <MultiDataTrigger.Conditions>
                                        <Condition Value="People"
                                                   Binding="{Binding Path=Name}">
                                        </Condition>

                                        <Condition Value="0"
                                                   Binding="{Binding ElementName=contentControl,Path=Width}">
                                        </Condition>
                                    </MultiDataTrigger.Conditions>
                                    <Setter TargetName="cc"
                                            Property="ContentTemplate"
                                            Value="{StaticResource PeopleTemplate}" />
                                </MultiDataTrigger>

……

当我省略 contentControl 宽度上的绑定但我无法确定原因时,触发器会正确更改模板(宽度是通过视觉状态的变化来设置动画的)?

有任何想法吗?

谢谢

4

1 回答 1

0

尝试将 Path=Width 更改为 Path=ActualWidth。

我假设触发器没有触发,因为 Width 属性实际上并未报告它为 0。

您可以使用 Snoop 来确认这个http://snoopwpf.codeplex.com/

于 2010-10-21T17:15:01.893 回答