mirror of
https://github.com/haven1433/HexManiacAdvance.git
synced 2026-06-01 04:53:29 -05:00
Add selection boilerplate code
This commit is contained in:
parent
5374da126b
commit
5b88752fb8
|
|
@ -220,10 +220,10 @@ namespace HavenSoft.HexManiac.Core.ViewModels {
|
|||
public double SpriteScale { get; }
|
||||
|
||||
private bool isFilteredOut;
|
||||
public bool IsFilteredOut {
|
||||
get => isFilteredOut;
|
||||
set => TryUpdate(ref isFilteredOut, value);
|
||||
}
|
||||
public bool IsFilteredOut { get => isFilteredOut; set => TryUpdate(ref isFilteredOut, value); }
|
||||
|
||||
private bool selected;
|
||||
public bool Selected { get => selected; set => TryUpdate(ref selected, value); }
|
||||
|
||||
public SortablePokemon(IDataModel model, int index) {
|
||||
var sprites = new ModelTable(model, model.GetAddressFromAnchor(new NoDataChangeDeltaModel(), -1, FrontSpritesTable));
|
||||
|
|
|
|||
|
|
@ -16,10 +16,13 @@
|
|||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<hshmwpfc:PixelImage x:Name="PixelImage">
|
||||
<hshmwpfc:PixelImage.Style>
|
||||
<Style>
|
||||
<Border BorderThickness="2" Margin="-1" Name="PixelImage">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding Selected}" Value="True">
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource Accent}"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger Binding="{Binding IsFilteredOut}" Value="True">
|
||||
<DataTrigger.EnterActions>
|
||||
<BeginStoryboard>
|
||||
|
|
@ -38,8 +41,9 @@
|
|||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</hshmwpfc:PixelImage.Style>
|
||||
</hshmwpfc:PixelImage>
|
||||
</Border.Style>
|
||||
<hshmwpfc:PixelImage/>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ namespace HavenSoft.HexManiac.WPF.Controls {
|
|||
|
||||
public DexReorderView() => InitializeComponent();
|
||||
|
||||
private const int ExpectedElementWidth = 64, ExpectedElementHeight = 64;
|
||||
private const int ExpectedElementWidth = 66, ExpectedElementHeight = 66;
|
||||
|
||||
private Point interactionPoint;
|
||||
private void StartElementMove(object sender, MouseButtonEventArgs e) {
|
||||
|
|
@ -23,7 +23,7 @@ namespace HavenSoft.HexManiac.WPF.Controls {
|
|||
|
||||
private void ElementMove(object sender, MouseEventArgs e) {
|
||||
if (!Container.IsMouseCaptured) return;
|
||||
var tileWidth = (int)(ActualWidth / ExpectedElementWidth);
|
||||
var tileWidth = (int)(Container.ActualWidth / ExpectedElementWidth);
|
||||
|
||||
var oldTileX = (int)(interactionPoint.X / ExpectedElementWidth);
|
||||
var oldTileY = (int)(interactionPoint.Y / ExpectedElementHeight);
|
||||
|
|
@ -40,7 +40,7 @@ namespace HavenSoft.HexManiac.WPF.Controls {
|
|||
var tilesToAnimate = viewModel.HandleMove(oldTileIndex, newTileIndex);
|
||||
|
||||
foreach(var tile in tilesToAnimate) {
|
||||
var image = (PixelImage)MainWindow.GetChild(Container, "PixelImage", viewModel.Elements[tile.index]);
|
||||
var image = MainWindow.GetChild(Container, "PixelImage", viewModel.Elements[tile.index]);
|
||||
if (!(image.RenderTransform is TranslateTransform)) image.RenderTransform = new TranslateTransform();
|
||||
var transform = (TranslateTransform)image.RenderTransform;
|
||||
transform.BeginAnimation(TranslateTransform.XProperty, new DoubleAnimation(ExpectedElementWidth * tile.direction, 0, span));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user