我有一个WPF ListView,它垂直重复数据.我无法弄清楚如何使其重复水平,如Windows资源管理器中的幻灯片视图.我当前的ListView定义是:
<ListView ItemsSource="{StaticResource MyDataList}" ItemTemplate="{StaticResource ListViewTemplate}">
</ListView>
Run Code Online (Sandbox Code Playgroud)
DataTemplate是(尽管我认为这无关紧要);
<Rectangle HorizontalAlignment="Stretch" Margin="0,1,0,0" x:Name="rectReflection" Width="Auto" Grid.Row="1" Height="30">
<Rectangle.Fill>
<VisualBrush Stretch="None" AlignmentX="Center" AlignmentY="Top" Visual="{Binding ElementName=imgPhoto}">
<VisualBrush.RelativeTransform>
<TransformGroup>
<MatrixTransform Matrix="1,0,0,-1,0,0" />
<TranslateTransform Y="1" />
</TransformGroup>
</VisualBrush.RelativeTransform>
</VisualBrush>
</Rectangle.Fill>
<Rectangle.OpacityMask>
<RadialGradientBrush GradientOrigin="0.5,1.041">
<RadialGradientBrush.RelativeTransform>
<TransformGroup>
<ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="1.202" ScaleY="2.865"/>
<SkewTransform AngleX="0" AngleY="0" CenterX="0.5" CenterY="0.5"/>
<RotateTransform Angle="0" CenterX="0.5" CenterY="0.5"/>
<TranslateTransform X="-0.002" Y="-0.491"/>
</TransformGroup>
</RadialGradientBrush.RelativeTransform>
<GradientStop Color="#D9000000" Offset="0"/>
<GradientStop Color="#01FFFFFF" Offset="0.8"/>
</RadialGradientBrush>
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个WPF应用程序来显示选择的图像.我希望在窗口顶部的横幅中显示所有可用图像,并在主窗口中显示主要选定图像以供进一步处理.
如果我想要窗口左侧的列表,垂直显示图像,我可以使用数据绑定非常优雅.
<ListBox
Name="m_listBox"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}"
>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Width="60" Stretch="Uniform" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
有一种直截了当的方法,我可以使这个水平而不是垂直?解决方案的主要要求是:
我正在使用ListView和ItemTemplate,如下所示:
<Window.Resources>
<DataTemplate x:Key="ItemTemplate">
<WrapPanel Orientation="Horizontal">
<Image Width="50" Height="50" Stretch="Fill" Source="{Binding Cover}"/>
<Label Content="{Binding Title}" />
</WrapPanel>
</DataTemplate>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
但封面不像Windows资源管理器窗口那样填满屏幕.
我该怎么做呢?它们只是在我的版本中垂直堆叠.
替代文字http://www.functionx.com/visualc/applications/images/explorer1.gif
我在这里看到一个类似的问题,但是在答案之后没有解决同样的问题.图像仍然垂直列出.我从NetFlix绑定了oData.
以下是XAML: -
<Window.Resources>
<DataTemplate x:Key="ImageCell">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding BoxArt.MediumUrl}" Width="200" Height="200" Stretch="Fill" ToolTip="{Binding Synopsis}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<ListView Margin="21,40,26,9" Name="lvwTitles" ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True"
SelectionMode="Single" ItemTemplate="{StaticResource ImageCell}">
</ListView>
Run Code Online (Sandbox Code Playgroud)
以下是背后的代码: -
List<Title> titles = serviceAccessor.GetAllTitlesByGenre(cmbGenre.SelectedValue.ToString());
lvwTitles.ItemsSource = titles;
Run Code Online (Sandbox Code Playgroud)