<ScrollViewer Background="White" RequestBringIntoView="ScrollViewer_RequestBringIntoView"
Style="{StaticResource for_scrollviewer}" HorizontalScrollBarVisibility="Disabled"
ScrollChanged="ScrollViewer_ScrollChanged" x:Name="svProject" Margin="0" ScrollViewer.CanContentScroll="False">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
</Grid.RowDefinitions>
<ListBox Margin="0,0,0,0" HorizontalAlignment="Stretch" Style="{StaticResource listBoxWithoutScrollView}" ItemsSource="{Binding ProjectList}" x:Name="lbProjectList"
SelectedItem="{Binding SelectedProject,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" PreviewMouseWheel="ListBox_PreviewMouseWheel">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<EventSetter Event="RequestBringIntoView" Handler="ScrollViewer_RequestBringIntoView" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border BorderBrush="#D6D6D6" Background="Transparent" BorderThickness="1,0,1,1">
<Grid MinHeight="50" Margin="15,0,0,0">
<Grid.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource MainForground}"></Setter>
<Setter Property="FontSize" Value="{StaticResource FontSize14}"></Setter>
<Setter Property="VerticalAlignment" Value="Center"></Setter>
<Setter Property="HorizontalAlignment" Value="Left"></Setter>
<Setter Property="HorizontalAlignment" Value="Left"></Setter>
<Setter Property="TextTrimming" Value="CharacterEllipsis"></Setter>
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"></Setter>
<Setter Property="Padding" Value="5,0,0,0"></Setter>
<Setter Property="MaxWidth" Value="140"></Setter>
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="160" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="70" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" x:Name="spProCopy" Width="160">
<StackPanel Grid.Column="0" VerticalAlignment="Center" Cursor="Hand">
<TextBlock x:Name="txtNo" Text="{Binding projectNo}" Style="{StaticResource textBlock}"></TextBlock>
<TextBlock x:Name="txtName" Text="{Binding name}" Style="{StaticResource textBlock}" ></TextBlock>
</StackPanel>
<Button Content="复制" Click="Button_Click" Height="Auto" Width="35" Style="{StaticResource Foreground[#00CB7C]}" BorderThickness="0" HorizontalAlignment="Right" Visibility="{Binding ElementName=spProCopy,Path=IsMouseOver,Converter={StaticResource boolToVisibilityConverter}}"/>
</StackPanel>
<ItemsControl Grid.Column="1" VerticalAlignment="Center" Margin="0,0,0,6" ItemsSource="{Binding targetFlowLists}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate >
<DockPanel>
<TextBlock Text="{Binding flowNo}" FontSize="14" VerticalAlignment="Center" MaxWidth="140" TextTrimming="CharacterEllipsis" Margin="5,0,0,0" Width="Auto" HorizontalAlignment="Left" x:Name="tbTargetFlow" ToolTip="{Binding targetFlowData}" />
<TextBlock Text="{Binding lineNumStr,StringFormat=({0})}" FontSize="14" VerticalAlignment="Center" MaxWidth="60" TextTrimming="CharacterEllipsis" Margin="1,0,0,0" Width="Auto" HorizontalAlignment="Left" ToolTip="{Binding lineNumStr}" >
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding flowNo}" Value="...">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DockPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Grid.Column="2" Text="{Binding classifyName}"></TextBlock>
<Ellipse Grid.Column="3" Fill="{Binding priorityToBgColor}" Width="8" Height="8" HorizontalAlignment="Left" Margin="5,0,0,0"></Ellipse>
<TextBlock Grid.Column="3" Text="{Binding priorityToStr}" Foreground="{Binding priorityToBgColor}" Margin="20,0,0,0"></TextBlock>
<Grid x:Name="grid" Grid.Column="4" VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<TextBlock MaxHeight="40" Grid.Row="0" Text="{Binding target}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis"></TextBlock>
<Button Grid.Row="1" HorizontalAlignment="Left" Height="20" Click="ProjectOpenFile_Click" Tag="{Binding targetFile}" Visibility="{Binding targetFile,Converter={StaticResource ObjToVisiblityConvert}}" Style="{StaticResource Foreground[#58A2FB]}" FontSize="14" BorderThickness="0" Background="Transparent" Content="查看附件"></Button>
</Grid>
<TextBlock Grid.Column="5" Text="{Binding picName}" ><Run Text="{Binding showPicDuty}"></Run></TextBlock>
<StackPanel Grid.Column="6" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center">
<StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Center">
<TextBlock Text="预: " MaxHeight="40" MaxWidth="240">
<TextBlock.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource MainForground}"></Setter>
<Setter Property="FontSize" Value="{StaticResource FontSize14}"></Setter>
<Setter Property="VerticalAlignment" Value="Center"></Setter>
<Setter Property="HorizontalAlignment" Value="Left"></Setter>
<Setter Property="TextTrimming" Value="CharacterEllipsis"></Setter>
<Setter Property="Padding" Value="5,0,0,0"></Setter>
<Setter Property="MaxWidth" Value="140"></Setter>
</Style>
</TextBlock.Resources>
<Run Text="{Binding planStartTimeToStr}"></Run><Run Text="~"></Run><Run Text="{Binding planEndTimeToStr}"></Run>
</TextBlock>
<TextBlock MaxHeight="40" MaxWidth="240" Text="实: ">
<TextBlock.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource MainForground}"></Setter>
<Setter Property="FontSize" Value="{StaticResource FontSize14}"></Setter>
<Setter Property="VerticalAlignment" Value="Center"></Setter>
<Setter Property="HorizontalAlignment" Value="Left"></Setter>
<Setter Property="TextTrimming" Value="CharacterEllipsis"></Setter>
<Setter Property="Padding" Value="5,0,0,0"></Setter>
<Setter Property="MaxWidth" Value="140"></Setter>
</Style>
</TextBlock.Resources>
<Run Text="{Binding startTimeToStr}"></Run><Run Text="~"></Run><Run Text="{Binding endTimeToStr}"></Run>
</TextBlock>
</StackPanel>
<Border Margin="5,0,0,0" VerticalAlignment="Center" Background="{Binding OverdueReminderToBgColor}" Width="Auto" MinWidth="57" Height="20" HorizontalAlignment="Left" Visibility="{Binding OverdueReminderToVisibility}">
<TextBlock Text="{Binding OverdueReminder}" FontSize="12" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,5,0" Foreground="{Binding OverdueReminderToFgColor}" ></TextBlock>
</Border>
</StackPanel>
<StackPanel Grid.Column="8" VerticalAlignment="Center">
<StackPanel Orientation="Horizontal">
<Image Width="16" Height="16" Source="{Binding state,Converter={StaticResource ProjectStateToImageConvert}}" />
<TextBlock Text="{Binding stateToStr}"></TextBlock>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0" Visibility="{Binding stateToStr,Converter={StaticResource StringToVisiblityStatusConverter},ConverterParameter=1}" >
<Border Width="36" Height="12" Background="#EB5444" >
<TextBlock Text="{Binding unallocatedNum}" FontSize="11" Foreground="#FFFFFF" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
<Border Width="80" Height="12" Background="#00CB7C" >
<TextBlock Text="{Binding unfinishNum}" FontSize="11" Foreground="#FFFFFF" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
<Border Width="36" Height="12" Background="#999999" >
<TextBlock Text="{Binding finishNum}" FontSize="11" Foreground="#FFFFFF" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</StackPanel>
</StackPanel>
<StackPanel x:Name="ProjectOperation" Grid.Column="9" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" Background="White" Cursor="Hand" MouseUp="ProjectOperation_Click" >
<Grid Margin="0,0,0,0" HorizontalAlignment="Center" Visibility="{Binding commentNum,Converter={StaticResource IntToVisibilityConvert}, ConverterParameter=0}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="评论(" FontSize="12" ></TextBlock>
<TextBlock Text="{Binding commentNumToStr}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" />
<TextBlock Text=")" FontSize="12"></TextBlock>
</StackPanel>
</Grid>
</StackPanel>
<ToggleButton Click="ToggleButton_Click_1" Grid.Column="10" FontSize="{StaticResource FontSize14}" HorizontalAlignment="Right" Margin="0,0,20,0" VerticalAlignment="Center" Style="{StaticResource ToggleBtnStyle}" Foreground="#58A2FB" BorderThickness="0" Content="详情" x:Name="btn" />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox>
<TextBlock Text="共" HorizontalAlignment="Left" VerticalAlignment="Bottom" FontSize="12" Foreground="#FF999999" Grid.Row="1" Margin="0,0,0,5">
<Run Text="{Binding totalRow}"></Run>
<Run Text="条记录"></Run>
</TextBlock>
</Grid>
</ScrollViewer>
xmal.cs
/// <summary>
/// 禁止滚动条自动回滚
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ScrollViewer_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
e.Handled = true;
}
/// <summary>
/// 滚动发生变化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
ScrollViewer sv = e.OriginalSource as ScrollViewer;
if (sv != null)
{
bool scroll = IsVerticalScrollBarAtButtom(sv);
if (scroll == true)
{
sv.CanContentScroll = false;
}
}
}
public bool IsVerticalScrollBarAtButtom(ScrollViewer s)
{
bool isAtButtom = false;
double dVer = s.VerticalOffset;
double dViewport = s.ViewportHeight;
double dExtent = s.ExtentHeight;
if (dVer != 0)
{
if (dVer + dViewport == dExtent)
{
isAtButtom = true;
}
else
{
isAtButtom = false;
}
}
else
{
isAtButtom = false;
}
if (s.VerticalScrollBarVisibility == ScrollBarVisibility.Disabled
|| s.VerticalScrollBarVisibility == ScrollBarVisibility.Hidden)
{
isAtButtom = true;
}
return isAtButtom;
}
/// <summary>
/// 项目滚动条分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ListBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
if (e.Delta <= 0)
{
if (svProject.VerticalOffset + svProject.ViewportHeight == svProject.ExtentHeight)
{
if (vm.hasNext == true)
{
vm.ProjectSearchReq.pageNum = vm.ProjectSearchReq.pageNum + 1;
vm.查询(查询条件);
}
else return;
}
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
var btn = sender as Button;
if (btn == null) return;
var model = btn.DataContext as ProjectModel;
string content = model.no+"\n"+ model.name;
Clipboard.SetText(content);
Utils.MessageHelper.GetSingleObj().ShowMsg(new Model.Common.BaseReturnModel() { BaseCode = 200, BaseMsg = "复制成功!" });
}