WPF ListView添加两个按钮
1.新建UserControl
2.添加listview
3.修改listview模版
<Style x:Key="ListViewStyle1" TargetType="{x:Type ListView}">
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
<Setter Property="BorderBrush" Value="{StaticResource ListBorder}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListView}">
<Grid HorizontalAlignment="Stretch" Height="Auto" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="917"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button x:Name="left" Grid.ColumnSpan="1" Content="Button" HorizontalAlignment="Center" VerticalAlignment="Center" Width="35" Background="{x:Null}" Style="{DynamicResource ButtonStyle1}" Height="99" Command="ScrollBar.PageLeftCommand" CommandTarget="{Binding ElementName=scrollView1}" />
<Button x:Name="right" Grid.ColumnSpan="1" Content="Button" HorizontalAlignment="Center" VerticalAlignment="Center" Width="35" Grid.Column="2" Style="{DynamicResource ButtonStyle2}" Height="99" Command="ScrollBar.PageRightCommand" CommandTarget="{Binding ElementName=scrollView1}"/>
<Border x:Name="Bd" Grid.Column="1" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="0" SnapsToDevicePixels="true" Width="912" Height="420" HorizontalAlignment="Center" VerticalAlignment="Center">
<ScrollViewer x:Name="scrollView1" Focusable="false" Padding="{TemplateBinding Padding}" Margin="0" CanContentScroll="True">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<ScrollViewer.Style>
<Style TargetType="ScrollViewer">
<EventSetter Event="ScrollChanged" Handler="CheckVisibleButton"></EventSetter>
</Style>
</ScrollViewer.Style>
</ScrollViewer>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
</Trigger>
<Trigger Property="IsGrouping" Value="true">
<Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
4.后台对按钮的显示就行操作
private void CheckVisibleButton(object sender, ScrollChangedEventArgs e)
{
try
{
var scrollview = list_roomtable.Template.FindName("scrollView1", list_roomtable) as ScrollViewer;
var leftbtn = list_roomtable.Template.FindName("left", list_roomtable) as Button;
var rightbtn = list_roomtable.Template.FindName("right", list_roomtable) as Button;
if (list_roomtable.Items.Count > 9)
{
if (scrollview.HorizontalOffset == 0)
{
leftbtn.Visibility = Visibility.Hidden;
rightbtn.Visibility = Visibility.Visible;
}else if (scrollview.HorizontalOffset == scrollview.ScrollableWidth)
{
leftbtn.Visibility = Visibility.Visible;
rightbtn.Visibility = Visibility.Hidden;
}
else
{
leftbtn.Visibility = Visibility.Visible;
rightbtn.Visibility = Visibility.Visible;
}
}
else
{
leftbtn.Visibility = Visibility.Hidden;
rightbtn.Visibility = Visibility.Hidden;
}
}
catch (Exception)
{
}
}

浙公网安备 33010602011771号