使用Datatemplate显示错误

时间:2013-11-20 11:52:24

标签: wpf path listbox drawing

今天你用Need multiple styles dependent on Listboxitem

帮助了我

但现在我在绘制或移动物体时得到一个灰色矩形。

图片应该是什么样子,以及当我画一条线时的样子: https://drive.google.com/file/d/0B_F04v1afwM5c0kteExsamlMcHM/edit?usp=sharing

这是我使用的代码:

                     <ListBox.Resources>
                        <DataTemplate DataType="{x:Type model:PathLine}">
                           <Path  Stroke="{Binding ObjectColor}" StrokeThickness="{Binding StrokeThickness}" Data="{Binding PathGeometryData}" x:Name="PathLine" Opacity="{Binding Opacity}" >
                            </Path>
                        </DataTemplate>
                        <DataTemplate DataType="{x:Type model:ImageObject}">
                            <Image Source="H:\Dropbox\WPF Projekte\Arena WPF\ArenaProgram\ArenaProgram\Pictures\tree1.png" Name="imgPic1" Width="100" Height="75" Stretch="Fill" VerticalAlignment="Top" />
                        </DataTemplate>
                        <Style TargetType="ListBoxItem">
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="true">
                                    <Setter Property="Effect">
                                        <Setter.Value>
                                            <DropShadowEffect Color="Crimson" ShadowDepth="3" BlurRadius="10" />
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </ListBox.Resources>
希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:0)

啊哈!最后,我知道你在谈论什么。 :)

在我看来,具有浅红色边框的(在我看来,白色)矩形是ListBoxItem对象。您添加了一个Style,告诉ListBoxItem在选中时会在其边缘显示深红色光晕,因此 就是您所看到的。尝试添加Setter,将Background属性设置为Transparent

<Style TargetType="ListBoxItem">
    <Setter Property="Background" Value="Transparent" />
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="true">
            <Setter Property="Effect">
                <Setter.Value>
                    <DropShadowEffect Color="Crimson" ShadowDepth="3" BlurRadius="10"/>
                </Setter.Value>
            </Setter>
        </Trigger>
    </Style.Triggers>
</Style>

如果这不起作用,您可以考虑完全删除Trigger