none
请教ListBoxItem模版的问题 RRS feed

  • 问题

  • 我要做一个图片列表框,用的是ListBox,模版如下:

            <Style x:Key="FaceIcon" TargetType="ListBoxItem">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Border Name="border" ToolTip="{Binding Title}" Width="36" Height="36" Background="White">
                                <Image Name="gif" Source="{Binding FileName}" Stretch="None" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="Background" TargetName="border" Value="#eee"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>


    现在的问题是,图片的宽度我写死在模版里面了,如果要做另外一个显示大图片的列表框,岂不是又要做另外一个模版?

    请问这个能改进吗?改为在实际使用的时候通过属性去指定ListBoxItem的宽度和高度?


    da jia hao!

    2017年9月6日 6:25

答案

  • 你好,

    >> 图片的宽度我写死在模版里面了,如果要做另外一个显示大图片的列表框,岂不是又要做另外一个模版?

    如果你是想以图片的实际宽度来显示,那就不要指定宽度和高度, ListBoxItem大小会适应图片的大小。

    >>请问这个能改进吗?改为在实际使用的时候通过属性去指定ListBoxItem的宽度和高度?

    使用UserControl, 暴露出属性,绑定模板中的图片。

    Best Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 liubin 2017年9月6日 7:21
    2017年9月6日 7:05
    版主