|
|
|
<controls:UserControlBase
|
|
|
|
x:Class="StabilityMatrix.Avalonia.Views.Dialogs.ImageViewerDialog"
|
|
|
|
xmlns="https://github.com/avaloniaui"
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
xmlns:controls="clr-namespace:StabilityMatrix.Avalonia.Controls"
|
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
|
|
xmlns:icons="clr-namespace:Projektanker.Icons.Avalonia;assembly=Projektanker.Icons.Avalonia"
|
|
|
|
xmlns:lang="clr-namespace:StabilityMatrix.Avalonia.Languages"
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
|
|
xmlns:mocks="clr-namespace:StabilityMatrix.Avalonia.DesignData"
|
|
|
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
|
|
|
xmlns:vmDialogs="clr-namespace:StabilityMatrix.Avalonia.ViewModels.Dialogs"
|
|
|
|
HorizontalContentAlignment="Stretch"
|
|
|
|
VerticalContentAlignment="Stretch"
|
|
|
|
d:DataContext="{x:Static mocks:DesignData.ImageViewerViewModel}"
|
|
|
|
d:DesignHeight="450"
|
|
|
|
d:DesignWidth="800"
|
|
|
|
x:DataType="vmDialogs:ImageViewerViewModel"
|
|
|
|
mc:Ignorable="d">
|
|
|
|
|
|
|
|
<controls:UserControlBase.KeyBindings>
|
|
|
|
<KeyBinding Command="{Binding NavigateNextCommand}" Gesture="Up" />
|
|
|
|
<KeyBinding Command="{Binding NavigateNextCommand}" Gesture="Right" />
|
|
|
|
<KeyBinding Command="{Binding NavigatePreviousCommand}" Gesture="Down" />
|
|
|
|
<KeyBinding Command="{Binding NavigatePreviousCommand}" Gesture="Left" />
|
|
|
|
</controls:UserControlBase.KeyBindings>
|
|
|
|
|
|
|
|
<!--<controls:UserControlBase.ContextFlyout>
|
|
|
|
<controls:BetterFlyout
|
|
|
|
Placement="Left">
|
|
|
|
<StackPanel>
|
|
|
|
<TextBlock Text="{Binding LocalImageFile.GenerationParameters.PositivePrompt}"/>
|
|
|
|
<TextBlock Text="{Binding LocalImageFile.GenerationParameters.NegativePrompt}"/>
|
|
|
|
</StackPanel>
|
|
|
|
</controls:BetterFlyout>
|
|
|
|
</controls:UserControlBase.ContextFlyout>-->
|
|
|
|
|
|
|
|
<controls:UserControlBase.Styles>
|
|
|
|
<Style Selector="SelectableTextBlock">
|
|
|
|
<Setter Property="TextWrapping" Value="WrapWithOverflow"/>
|
|
|
|
<Setter Property="SelectionBrush" Value="{DynamicResource CompletionSelectionForegroundBrush}"/>
|
|
|
|
</Style>
|
|
|
|
</controls:UserControlBase.Styles>
|
|
|
|
|
|
|
|
<Grid
|
|
|
|
HorizontalAlignment="Stretch"
|
|
|
|
VerticalAlignment="Stretch"
|
|
|
|
RowDefinitions="*,Auto">
|
|
|
|
|
|
|
|
<controls:AdvancedImageBox
|
|
|
|
Name="ImageBox"
|
|
|
|
Image="{Binding ImageSource.BitmapAsync^}"
|
|
|
|
SizeMode="Fit">
|
|
|
|
<controls:AdvancedImageBox.ContextFlyout>
|
|
|
|
<ui:FAMenuFlyout>
|
|
|
|
<ui:MenuFlyoutItem
|
|
|
|
x:Name="CopyMenuItem"
|
|
|
|
IsEnabled="{OnPlatform Windows=True, Default=False}"
|
|
|
|
Command="{Binding CopyImageCommand}"
|
|
|
|
CommandParameter="{Binding #ImageBox.Image}"
|
|
|
|
Text="Copy"
|
|
|
|
HotKey="Ctrl+C"
|
|
|
|
IconSource="Copy" />
|
|
|
|
</ui:FAMenuFlyout>
|
|
|
|
</controls:AdvancedImageBox.ContextFlyout>
|
|
|
|
</controls:AdvancedImageBox>
|
|
|
|
|
|
|
|
<!-- Info button -->
|
|
|
|
<Grid
|
|
|
|
Grid.Row="0"
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
VerticalAlignment="Top">
|
|
|
|
<Button
|
|
|
|
Name="InfoButton"
|
|
|
|
Grid.Row="0"
|
|
|
|
Margin="8,8,0,0"
|
|
|
|
Padding="8"
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
icons:Attached.Icon="fa-solid fa-info"
|
|
|
|
Classes="transparent-full"
|
|
|
|
IsEnabled="{Binding HasGenerationParameters}"
|
|
|
|
Tapped="InfoButton_OnTapped" />
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
|
|
|
|
<ui:TeachingTip
|
|
|
|
Name="InfoTeachingTip"
|
|
|
|
Grid.Row="0"
|
|
|
|
MinWidth="100"
|
|
|
|
PreferredPlacement="LeftBottom"
|
|
|
|
PlacementMargin="16,0,16,0"
|
|
|
|
TailVisibility="Collapsed"
|
|
|
|
Target="{Binding #InfoButton}">
|
|
|
|
<StackPanel Spacing="4" Margin="4,0" DataContext="{Binding LocalImageFile.GenerationParameters}">
|
|
|
|
<Grid RowDefinitions="Auto,*">
|
|
|
|
<TextBlock Text="Prompt" Theme="{DynamicResource BodyStrongTextBlockStyle}" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="1"
|
|
|
|
Text="{Binding PositivePrompt}" />
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<Grid RowDefinitions="Auto,*">
|
|
|
|
<TextBlock Text="Negative Prompt" Theme="{DynamicResource BodyStrongTextBlockStyle}" />
|
|
|
|
<SelectableTextBlock
|
|
|
|
Grid.Row="1"
|
|
|
|
Text="{Binding NegativePrompt}" />
|
|
|
|
</Grid>
|
|
|
|
</StackPanel>
|
|
|
|
|
|
|
|
</ui:TeachingTip>
|
|
|
|
|
|
|
|
<!-- Close button -->
|
|
|
|
<Grid
|
|
|
|
Grid.Row="0"
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
VerticalAlignment="Top">
|
|
|
|
<Button
|
|
|
|
Margin="0,8,8,0"
|
|
|
|
Padding="8"
|
|
|
|
icons:Attached.Icon="fa-solid fa-xmark"
|
|
|
|
Classes="transparent-full"
|
|
|
|
Command="{Binding OnCloseButtonClick}" />
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
<!-- Footer -->
|
|
|
|
<!--<Border
|
|
|
|
Grid.Row="1"
|
|
|
|
MinHeight="20"
|
|
|
|
Background="Transparent"
|
|
|
|
VerticalAlignment="Bottom"
|
|
|
|
Opacity="0.9">
|
|
|
|
<UniformGrid Margin="4" Columns="3">
|
|
|
|
<TextBlock
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
FontSize="13"
|
|
|
|
Text="{Binding ImageSizeText}" />
|
|
|
|
<TextBlock
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
FontSize="13"
|
|
|
|
Text="{Binding FileNameText}"
|
|
|
|
TextAlignment="Center" />
|
|
|
|
<TextBlock
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
FontSize="13"
|
|
|
|
Text="{Binding FileSizeText}" />
|
|
|
|
</UniformGrid>
|
|
|
|
</Border>-->
|
|
|
|
<ExperimentalAcrylicBorder
|
|
|
|
Grid.Row="1"
|
|
|
|
Padding="4,0,4,0"
|
|
|
|
VerticalAlignment="Bottom"
|
|
|
|
Material="{StaticResource OpaqueDarkAcrylicMaterial}">
|
|
|
|
<UniformGrid Margin="4" Columns="3">
|
|
|
|
<TextBlock
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
FontSize="13"
|
|
|
|
Text="{Binding ImageSizeText}" />
|
|
|
|
<TextBlock
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
FontSize="13"
|
|
|
|
Text="{Binding FileNameText}"
|
|
|
|
TextAlignment="Center" />
|
|
|
|
<TextBlock
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
FontSize="13"
|
|
|
|
Text="{Binding FileSizeText}" />
|
|
|
|
</UniformGrid>
|
|
|
|
</ExperimentalAcrylicBorder>
|
|
|
|
|
|
|
|
<!-- The preview tracker -->
|
|
|
|
<!--<Image
|
|
|
|
MinHeight="100"
|
|
|
|
MinWidth="100"
|
|
|
|
RenderOptions.BitmapInterpolationMode="HighQuality"
|
|
|
|
Source="{Binding #MainImageBox.TrackerImage}"
|
|
|
|
HorizontalAlignment="Left"
|
|
|
|
VerticalAlignment="Bottom"/>-->
|
|
|
|
</Grid>
|
|
|
|
</controls:UserControlBase>
|