Files
Beyhan Oğur d5f52cc3d3 first commit
2026-09-03 04:45:36 +03:00

108 lines
7.0 KiB
XML

<UserControl x:Class="ClassicAssist.UI.Views.SkillsTabControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:misc="clr-namespace:ClassicAssist.Misc"
xmlns:misc1="clr-namespace:ClassicAssist.UI.Misc"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:viewModels="clr-namespace:ClassicAssist.UI.ViewModels;assembly=ClassicAssist.Shared"
xmlns:valueConverters="clr-namespace:ClassicAssist.UI.Misc.ValueConverters"
xmlns:resources="clr-namespace:ClassicAssist.Shared.Resources;assembly=ClassicAssist.Shared"
xmlns:data="clr-namespace:ClassicAssist.UO.Data;assembly=ClassicAssist.Shared"
mc:Ignorable="d">
<d:DesignerProperties.DesignStyle>
<Style TargetType="UserControl">
<Setter Property="Background" Value="{DynamicResource ThemeBackgroundBrush}" />
</Style>
</d:DesignerProperties.DesignStyle>
<UserControl.DataContext>
<viewModels:SkillsTabViewModel />
</UserControl.DataContext>
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../../Resources/DarkTheme.xaml" />
<ResourceDictionary Source="../../Resources/ResourceDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="110" />
</Grid.ColumnDefinitions>
<Grid.Resources>
<valueConverters:LockStatusValueConverter x:Key="LockStatusValueConverter" />
<valueConverters:SetSkillLockMultiValueConverter x:Key="MenuItemMultiValueConverter" />
<!--ContextMenu in a different visual tree, https://stackoverflow.com/questions/3583507/wpf-binding-a-contextmenu-to-an-mvvm-command-->
<misc:BindingProxy x:Key="Proxy" Data="{Binding}" />
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Margin" Value="0,7,0,0" />
</Style>
<ContextMenu x:Key="ItemContextMenu">
<MenuItem Header="{x:Static resources:Strings.Set_Up}"
Command="{Binding Source={StaticResource Proxy}, Path=Data.SetSkillLocksCommand}"
CommandParameter="{x:Static data:LockStatus.Up}" />
<MenuItem Header="{x:Static resources:Strings.Set_Down}"
Command="{Binding Source={StaticResource Proxy}, Path=Data.SetSkillLocksCommand}"
CommandParameter="{x:Static data:LockStatus.Down}" />
<MenuItem Header="{x:Static resources:Strings.Set_Locked}"
Command="{Binding Source={StaticResource Proxy}, Path=Data.SetSkillLocksCommand}"
CommandParameter="{x:Static data:LockStatus.Locked}" />
<Separator />
<MenuItem Header="{x:Static resources:Strings.Use_skill}"
Command="{Binding Source={StaticResource Proxy}, Path=Data.UseSkillCommand}" />
</ContextMenu>
</Grid.Resources>
<ListView Grid.Column="0" ItemsSource="{Binding Items}" Margin="5"
GridViewColumnHeader.Click="GridViewHeaderOnClick" x:Name="listView"
SelectedItem="{Binding SelectedItem}" ContextMenu="{StaticResource ItemContextMenu}">
<ListView.View>
<GridView>
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Name}"
DisplayMemberBinding="{Binding Skill}" Width="130"
SortField="Name" />
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Value}" Width="70"
SortField="Value"
DisplayMemberBinding="{Binding Value}" />
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Base}" Width="70" SortField="Base"
DisplayMemberBinding="{Binding Base}" />
<misc1:SkillsGridViewColumn Header="+/-" Width="50" SortField="Delta"
DisplayMemberBinding="{Binding Delta, StringFormat={}{0:0.#}}" />
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Cap}" Width="70" SortField="Cap"
DisplayMemberBinding="{Binding Cap}" />
<misc1:SkillsGridViewColumn Header="{x:Static resources:Strings.Status}" Width="40"
SortField="LockStatus">
<misc1:SkillsGridViewColumn.CellTemplate>
<DataTemplate>
<Image
Source="{Binding LockStatus, Converter={StaticResource LockStatusValueConverter}}"
HorizontalAlignment="Center" Width="40" Stretch="Uniform" Height="10"
VerticalAlignment="Center" />
</DataTemplate>
</misc1:SkillsGridViewColumn.CellTemplate>
</misc1:SkillsGridViewColumn>
</GridView>
</ListView.View>
</ListView>
<StackPanel Grid.Column="1" Margin="10,0,10,10">
<StackPanel.Resources>
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="SkillStatesEnum">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="data:LockStatus" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</StackPanel.Resources>
<Button Content="{x:Static resources:Strings.Reset____}"
Command="{Binding ResetDeltasCommand, Mode=OneWay}" />
<TextBlock Text="{x:Static resources:Strings.All_skills_}" Margin="0,20,0,0" />
<ComboBox x:Name="comboBox" ItemsSource="{Binding Mode=OneWay, Source={StaticResource SkillStatesEnum}}"
Margin="0,5,0,0" SelectedIndex="0" />
<Button Content="{x:Static resources:Strings.Set}" Command="{Binding SetAllSkillLocksCommand, Mode=OneWay}"
CommandParameter="{Binding SelectedIndex, ElementName=comboBox}" />
<TextBlock Text="{x:Static resources:Strings.Total_base_}" Margin="0,30,0,0" TextWrapping="Wrap" />
<TextBlock Text="{Binding TotalBase}" FontWeight="Bold" Margin="0,3,0,0" />
</StackPanel>
</Grid>
</UserControl>