扩张器老子弹仍然显示

时间:2012-04-02 02:09:13

标签: .net wpf xaml wpf-controls expander

我在wpf中跟随了一个扩展器示例。工作正常,但旧的子弹仍然显示besise新的子弹。代码如下:

<Expander Name="ExpanderControl"
   HorizontalAlignment="Left" Background="LavenderBlush"
   ExpandDirection="Down"  IsExpanded="False" Width="250"
      FontSize="20" FontWeight="Bold" Foreground="Green" >
<Expander.Header>
    <BulletDecorator>
        <BulletDecorator.Bullet>
            <Image Width="50" Source="Flowers.jpg"/>
        </BulletDecorator.Bullet>
        <TextBlock Margin="20,0,0,0">Flower Header</TextBlock>
    </BulletDecorator>
</Expander.Header>

<TextBlock TextWrapping="Wrap" FontSize="14" FontWeight="Light" Foreground="Black">
    This is an Expander control. Within this control, all contents will be wrapped.
    At run-time, you may expand or collapse this control. Type more text here to be           
    Jump around and hype.
</TextBlock>
</Expander>

2 个答案:

答案 0 :(得分:2)

ControlTemplate控件的Expander定义ToggleButton,其内容是绑定到Header属性的模板。此ToggleButton也定义了ControlTemplate,其中有两列:一列用于Ellipse(箭头表示为Path),另一列用于ContentPresenter Header(托管Template内容)。

要更改此行为,您需要重新定义Expander上的{{1}}属性。

答案 1 :(得分:0)

我找到了一个解决方案。

<BulletDecorator.Bullet>
        <Image Width="50" Source="Flowers.jpg" Margin="-20,0,0,0"/>
</BulletDecorator.Bullet>

根据您的需要设置-20的边距,它将覆盖旧的子弹。我知道这不是正确的做法,但它对我有用。