<!-- Static images --> <BitmapImage x:Key="HiddenItemsImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/MoreDown.png" /> <BitmapImage x:Key="RecurrenceImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/Recurrence.png" /> <BitmapImage x:Key="RecurrenceExImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/RecurrenceEx.png" /> <BitmapImage x:Key="ReminderImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/Reminder.png" /> <BitmapImage x:Key="ArrowLeftImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/ArrowLeft.png" /> <BitmapImage x:Key="ArrowRightImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/ArrowRight.png" /> <BitmapImage x:Key="ArrowUpImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/ArrowUp.png" /> <BitmapImage x:Key="ArrowDownImage" UriSource="pack://application:,,,/MindFusion.Scheduling.Wpf;component/Resources/ArrowDown.png" /> <Style TargetType="local:ItemPresenter"> <Style.Triggers>
<DataTrigger Binding="{Binding StyleKey, RelativeSource={RelativeSource Self}}" Value="Complex"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:ItemPresenter"> <local:ResizeBands MoveBandMargin="{TemplateBinding MoveBandMargin}" Orientation="{TemplateBinding Orientation}" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" ItemSettings="{TemplateBinding ItemSettings}" ResizeBandsVisible="{TemplateBinding Selected}"> <local:SideBorders> <Border Background="{Binding ItemStyle.Background}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <StackPanel Orientation="Vertical"> <Border Visibility="{Binding Path=ItemSettings.ShowRecurrenceIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource RecurrenceImage}" Visibility="{Binding RecurrenceIconVisibility}" Margin="1"/> </Border> <Border Visibility="{Binding Path=ItemSettings.ShowRecurrenceExceptionIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource RecurrenceExImage}" Visibility="{Binding RecurrenceExceptionIconVisibility}" Margin="1"/> </Border> <Border Visibility="{Binding Path=ItemSettings.ShowReminderIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource ReminderImage}" Visibility="{Binding ReminderIconVisibility}" Margin="1"/> </Border> </StackPanel> <StackPanel Grid.Column="1" Orientation="Vertical"> <Border BorderBrush="{Binding ItemStyle.LineBrush}" BorderThickness="0,0,0,1" Height="{Binding ItemSettings.HeaderSize}" Margin="6,0,6,0"> <TextBlock x:Name="HeaderBlock" Margin="{TemplateBinding HeaderTextMargin}" TextWrapping="Wrap" Text="{Binding Item.HeaderText, RelativeSource={RelativeSource TemplatedParent}}" DataContext="{TemplateBinding ItemStyle}" Foreground="{Binding Foreground}" TextAlignment="{Binding TextAlignment}" VerticalAlignment="{Binding VerticalAlignment}" FontFamily="{Binding FontFamily}" FontSize="{Binding FontSize}" FontStretch="{Binding FontStretch}" FontStyle="{Binding FontStyle}" FontWeight="{Binding FontWeight}" /> </Border> <TextBlock DataContext="{TemplateBinding Item}" TextWrapping="Wrap" Text="{Binding DescriptionText}" Margin="5,1,1,1" Grid.Column="1" Grid.Row="1" /> </StackPanel> </Grid> </Border> </local:SideBorders> </local:ResizeBands> </ControlTemplate> </Setter.Value> </Setter> </DataTrigger>
<MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding StyleKey, RelativeSource={RelativeSource Self}}" Value="Simple" /> <Condition Binding="{Binding Orientation, RelativeSource={RelativeSource Self}}" Value="Horizontal" /> </MultiDataTrigger.Conditions> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:ItemPresenter"> <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Background="{Binding ItemStyle.Background}"> <local:SideBorders> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Image Grid.Column="0" Visibility="{TemplateBinding StartArrowImageVisibility}" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Margin="1" Source="{StaticResource ArrowLeftImage}" /> <StackPanel Orientation="Horizontal" Grid.Column="1"> <Border Visibility="{Binding Path=ItemSettings.ShowRecurrenceIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource RecurrenceImage}" Visibility="{Binding RecurrenceIconVisibility}" Stretch="None" Margin="1"/> </Border> <Border Visibility="{Binding Path=ItemSettings.ShowRecurrenceExceptionIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource RecurrenceExImage}" Visibility="{Binding RecurrenceExceptionIconVisibility}" Stretch="None" Margin="1"/> </Border> <Border Visibility="{Binding Path=ItemSettings.ShowReminderIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource ReminderImage}" Visibility="{Binding ReminderIconVisibility}" Stretch="None" Margin="1"/> </Border> </StackPanel> <TextBlock x:Name="HeaderBlock" Grid.Column="2" TextWrapping="Wrap" Text="{Binding Item.HeaderText, RelativeSource={RelativeSource TemplatedParent}}" DataContext="{TemplateBinding ItemStyle}" Foreground="{Binding Foreground}" TextAlignment="{Binding TextAlignment}" VerticalAlignment="{Binding VerticalAlignment}" FontFamily="{Binding FontFamily}" FontSize="{Binding FontSize}" FontStretch="{Binding FontStretch}" FontStyle="{Binding FontStyle}" FontWeight="{Binding FontWeight}" /> <Image Grid.Column="3" Visibility="{TemplateBinding EndArrowImageVisibility}" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Margin="1" Source="{StaticResource ArrowRightImage}"/> </Grid> </local:SideBorders> </Grid> </ControlTemplate> </Setter.Value> </Setter> </MultiDataTrigger>
<MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding StyleKey, RelativeSource={RelativeSource Self}}" Value="Simple" /> <Condition Binding="{Binding Orientation, RelativeSource={RelativeSource Self}}" Value="Vertical" /> </MultiDataTrigger.Conditions> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:ItemPresenter"> <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Background="{Binding ItemStyle.Background}"> <local:SideBorders> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Image Grid.Row="0" Visibility="{TemplateBinding StartArrowImageVisibility}" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Margin="1" Source="{StaticResource ArrowUpImage}" /> <StackPanel Orientation="Vertical" Grid.Row="1"> <Border Visibility="{Binding Path=ItemSettings.ShowRecurrenceIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource RecurrenceImage}" Visibility="{Binding RecurrenceIconVisibility}" Stretch="None" Margin="1"/> </Border> <Border Visibility="{Binding Path=ItemSettings.ShowRecurrenceExceptionIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource RecurrenceExImage}" Visibility="{Binding RecurrenceExceptionIconVisibility}" Stretch="None" Margin="1"/> </Border> <Border Visibility="{Binding Path=ItemSettings.ShowReminderIcons, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}, ConverterParameter=true}"> <Image Source="{StaticResource ReminderImage}" Visibility="{Binding ReminderIconVisibility}" Stretch="None" Margin="1"/> </Border> </StackPanel> <TextBlock x:Name="HeaderBlock" Grid.Row="2" TextWrapping="Wrap" Text="{Binding Item.HeaderText, RelativeSource={RelativeSource TemplatedParent}}" DataContext="{TemplateBinding ItemStyle}" Foreground="{Binding Foreground}" TextAlignment="{Binding TextAlignment}" VerticalAlignment="{Binding VerticalAlignment}" FontFamily="{Binding FontFamily}" FontSize="{Binding FontSize}" FontStretch="{Binding FontStretch}" FontStyle="{Binding FontStyle}" FontWeight="{Binding FontWeight}" /> <Image Grid.Row="3" Visibility="{TemplateBinding EndArrowImageVisibility}" HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="None" Margin="1" Source="{StaticResource ArrowDownImage}" /> </Grid> </local:SideBorders> </Grid> </ControlTemplate> </Setter.Value> </Setter> </MultiDataTrigger>
</Style.Triggers> </Style>
<Style TargetType="local:SideBorders"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:SideBorders"> <Grid> <Rectangle HorizontalAlignment="Left" Width="{Binding BorderThickness.Left}" Fill="{Binding ItemStyle.LeftBorderBrush}" /> <Rectangle VerticalAlignment="Top" Height="{Binding BorderThickness.Top}" Fill="{Binding ItemStyle.TopBorderBrush}" /> <Rectangle HorizontalAlignment="Right" Width="{Binding BorderThickness.Right}" Fill="{Binding ItemStyle.RightBorderBrush}" /> <Rectangle VerticalAlignment="Bottom" Height="{Binding BorderThickness.Bottom}" Fill="{Binding ItemStyle.BottomBorderBrush}" /> <Border BorderThickness="{Binding BorderThickness}"> <ContentPresenter Margin="{Binding ItemStyle.ContentMargin}" /> </Border> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
<Style TargetType="local:ResizeBands"> <Style.Resources> <local:VisibleConverter x:Key="visibleConverter"/> </Style.Resources> <Style.Triggers>
<Trigger Property="Orientation" Value="Vertical"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:ResizeBands"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition /> </Grid.ColumnDefinitions> <Border x:Name="ResizeBandBack" Grid.ColumnSpan="2" BorderThickness="1,1,1,0" Background="{Binding ItemStyle.FillBrush}" BorderBrush="{Binding ItemStyle.BorderBrush}" Height="{Binding ItemSettings.ResizeBandSize}" Visibility="{Binding ResizeBandsVisible, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}}" /> <Border x:Name="UnderMoveBand" Grid.Row="1" BorderThickness="1,1,0,1" BorderBrush="{Binding ItemStyle.BorderBrush}" Width="{Binding ItemSettings.MoveBandSize}" Background="White" /> <Border x:Name="MoveBand" Grid.Row="1" BorderThickness="1,1,0,1" Width="{Binding ItemSettings.MoveBandSize}" Margin="{TemplateBinding MoveBandMargin}" Background="{Binding ItemStyle.FillBrush}" BorderBrush="{Binding ItemStyle.BorderBrush}" /> <Border x:Name="ResizeBandForward" Grid.Row="2" Grid.ColumnSpan="2" BorderThickness="1,0,1,1" Background="{Binding ItemStyle.FillBrush}" BorderBrush="{Binding ItemStyle.BorderBrush}" Height="{Binding ItemSettings.ResizeBandSize}" Visibility="{Binding ResizeBandsVisible, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}}" /> <ContentPresenter Grid.Column="1" Grid.Row="1"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Trigger>
<Trigger Property="Orientation" Value="Horizontal"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:ResizeBands"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Border x:Name="ResizeBandBackHorizontal" Grid.RowSpan="2" BorderThickness="1,1,0,1" Width="{Binding ItemSettings.ResizeBandSize}" Background="{Binding ItemStyle.FillBrush}" BorderBrush="{Binding ItemStyle.BorderBrush}" Visibility="{Binding ResizeBandsVisible, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}}" /> <Border x:Name="UnderMoveBandHorizontal" Grid.Column="1" Background="White" BorderThickness="1,1,1,0" BorderBrush="{Binding ItemStyle.BorderBrush}" Height="{Binding ItemSettings.MoveBandSize}"/> <Border x:Name="MoveBandHorizontal" Grid.Column="1" BorderThickness="1,1,1,0" Background="{Binding ItemStyle.FillBrush}" BorderBrush="{Binding ItemStyle.BorderBrush}" Margin="{TemplateBinding MoveBandMargin}" Height="{Binding ItemSettings.MoveBandSize}" /> <Border x:Name="ResizeBandForwardHorizontal" Grid.Column="2" Grid.RowSpan="2" BorderThickness="0,1,1,1" Width="{Binding ItemSettings.ResizeBandSize}" Background="{Binding ItemStyle.FillBrush}" BorderBrush="{Binding ItemStyle.BorderBrush}" Visibility="{Binding ResizeBandsVisible, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource visibleConverter}}" /> <ContentPresenter Grid.Column="1" Grid.Row="1" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Trigger>
</Style.Triggers> </Style> |