fix: add ManagedFileChooserOverwritePrompt styles.
This commit is contained in:
parent
e2420121eb
commit
e4c21aefc6
@ -13,8 +13,8 @@
|
|||||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||||
</Style>
|
</Style>
|
||||||
</StackPanel.Styles>
|
</StackPanel.Styles>
|
||||||
<Button Name="openFileDialog">Open File</Button>
|
<Button Name="OpenFileButton" Content="Open File" />
|
||||||
<Button Name="selectFolderDialog">Select Folder</Button>
|
<Button Name="SelectFolderButton" Content="Select Folder" />
|
||||||
<Button Name="saveFileDialog">Save File</Button>
|
<Button Name="SaveFileButton" Content="Save File" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Dialogs;
|
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using Avalonia.Markup.Xaml;
|
|
||||||
using Avalonia.Platform.Storage;
|
using Avalonia.Platform.Storage;
|
||||||
|
|
||||||
namespace Semi.Avalonia.Demo.Pages;
|
namespace Semi.Avalonia.Demo.Pages;
|
||||||
@ -14,14 +10,14 @@ public partial class ManagedFileChooserDemo : UserControl
|
|||||||
public ManagedFileChooserDemo()
|
public ManagedFileChooserDemo()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
openFileDialog.Click += OpenFileDialog;
|
OpenFileButton.Click += OpenFileDialog;
|
||||||
selectFolderDialog.Click += SelectFolderDialog;
|
SelectFolderButton.Click += SelectFolderDialog;
|
||||||
saveFileDialog.Click += SaveFileDialog;
|
SaveFileButton.Click += SaveFileDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void OpenFileDialog(object sender, RoutedEventArgs args)
|
private async void OpenFileDialog(object? sender, RoutedEventArgs args)
|
||||||
{
|
{
|
||||||
IStorageProvider? sp = GetStorageProvider();
|
var sp = GetStorageProvider();
|
||||||
if (sp is null) return;
|
if (sp is null) return;
|
||||||
var result = await sp.OpenFilePickerAsync(new FilePickerOpenOptions()
|
var result = await sp.OpenFilePickerAsync(new FilePickerOpenOptions()
|
||||||
{
|
{
|
||||||
@ -30,9 +26,10 @@ public partial class ManagedFileChooserDemo : UserControl
|
|||||||
AllowMultiple = true,
|
AllowMultiple = true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
private async void SelectFolderDialog(object sender, RoutedEventArgs args)
|
|
||||||
|
private async void SelectFolderDialog(object? sender, RoutedEventArgs args)
|
||||||
{
|
{
|
||||||
IStorageProvider? sp = GetStorageProvider();
|
var sp = GetStorageProvider();
|
||||||
if (sp is null) return;
|
if (sp is null) return;
|
||||||
var result = await sp.OpenFolderPickerAsync(new FolderPickerOpenOptions()
|
var result = await sp.OpenFolderPickerAsync(new FolderPickerOpenOptions()
|
||||||
{
|
{
|
||||||
@ -40,16 +37,17 @@ public partial class ManagedFileChooserDemo : UserControl
|
|||||||
AllowMultiple = true,
|
AllowMultiple = true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
private async void SaveFileDialog(object sender, RoutedEventArgs args)
|
|
||||||
|
private async void SaveFileDialog(object? sender, RoutedEventArgs args)
|
||||||
{
|
{
|
||||||
IStorageProvider? sp = GetStorageProvider();
|
var sp = GetStorageProvider();
|
||||||
if (sp is null) return;
|
if (sp is null) return;
|
||||||
var result = await sp.SaveFilePickerAsync(new FilePickerSaveOptions()
|
var result = await sp.SaveFilePickerAsync(new FilePickerSaveOptions()
|
||||||
{
|
{
|
||||||
Title = "Open File",
|
Title = "Save File",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private IStorageProvider? GetStorageProvider()
|
private IStorageProvider? GetStorageProvider()
|
||||||
{
|
{
|
||||||
var topLevel = TopLevel.GetTopLevel(this);
|
var topLevel = TopLevel.GetTopLevel(this);
|
||||||
@ -58,10 +56,10 @@ public partial class ManagedFileChooserDemo : UserControl
|
|||||||
|
|
||||||
List<FilePickerFileType>? GetFileTypes()
|
List<FilePickerFileType>? GetFileTypes()
|
||||||
{
|
{
|
||||||
return new List<FilePickerFileType>
|
return
|
||||||
{
|
[
|
||||||
FilePickerFileTypes.All,
|
FilePickerFileTypes.All,
|
||||||
FilePickerFileTypes.TextPlain
|
FilePickerFileTypes.TextPlain
|
||||||
};
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,6 +4,7 @@
|
|||||||
xmlns:converters="using:Semi.Avalonia.Converters"
|
xmlns:converters="using:Semi.Avalonia.Converters"
|
||||||
xmlns:dialogs="clr-namespace:Avalonia.Dialogs;assembly=Avalonia.Dialogs"
|
xmlns:dialogs="clr-namespace:Avalonia.Dialogs;assembly=Avalonia.Dialogs"
|
||||||
xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal;assembly=Avalonia.Dialogs"
|
xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal;assembly=Avalonia.Dialogs"
|
||||||
|
xmlns:cvt="using:Avalonia.Controls.Converters"
|
||||||
x:CompileBindings="True">
|
x:CompileBindings="True">
|
||||||
<!-- Add Resources Here -->
|
<!-- Add Resources Here -->
|
||||||
<Design.PreviewWith>
|
<Design.PreviewWith>
|
||||||
@ -194,4 +195,46 @@
|
|||||||
</ControlTemplate>
|
</ControlTemplate>
|
||||||
</Setter>
|
</Setter>
|
||||||
</ControlTheme>
|
</ControlTheme>
|
||||||
|
|
||||||
|
<ControlTheme x:Key="{x:Type dialogs:ManagedFileChooserOverwritePrompt}"
|
||||||
|
TargetType="dialogs:ManagedFileChooserOverwritePrompt">
|
||||||
|
<Setter Property="MaxWidth" Value="400" />
|
||||||
|
<Setter Property="Padding" Value="10"/>
|
||||||
|
<Setter Property="Template">
|
||||||
|
<ControlTemplate>
|
||||||
|
<Border Background="{TemplateBinding Background}"
|
||||||
|
BorderBrush="{TemplateBinding BorderBrush}"
|
||||||
|
BorderThickness="{TemplateBinding BorderThickness}"
|
||||||
|
CornerRadius="{TemplateBinding CornerRadius}"
|
||||||
|
Padding="{TemplateBinding Padding}">
|
||||||
|
<StackPanel Spacing="10">
|
||||||
|
<TextBlock TextWrapping="Wrap">
|
||||||
|
<TextBlock.Text>
|
||||||
|
<MultiBinding>
|
||||||
|
<MultiBinding.Converter>
|
||||||
|
<cvt:StringFormatConverter />
|
||||||
|
</MultiBinding.Converter>
|
||||||
|
<DynamicResource ResourceKey="STRING_CHOOSER_PROMPT_FILE_ALREADY_EXISTS" />
|
||||||
|
<TemplateBinding Property="FileName" />
|
||||||
|
</MultiBinding>
|
||||||
|
</TextBlock.Text>
|
||||||
|
</TextBlock>
|
||||||
|
<StackPanel HorizontalAlignment="Right"
|
||||||
|
Spacing="10"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<Button Theme="{StaticResource SolidButton}"
|
||||||
|
Content="{DynamicResource STRING_CHOOSER_DIALOG_OK}"
|
||||||
|
HorizontalContentAlignment="Center"
|
||||||
|
IsDefault="True"
|
||||||
|
Command="{Binding Confirm, RelativeSource={RelativeSource TemplatedParent}}" />
|
||||||
|
<Button Content="{DynamicResource STRING_CHOOSER_DIALOG_CANCEL}"
|
||||||
|
IsCancel="True"
|
||||||
|
HorizontalContentAlignment="Center"
|
||||||
|
Command="{Binding Cancel, RelativeSource={RelativeSource TemplatedParent}}" />
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
</Border>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter>
|
||||||
|
</ControlTheme>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
|
@ -21,4 +21,5 @@
|
|||||||
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">Date Modified</x:String>
|
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">Date Modified</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">Type</x:String>
|
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">Type</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">Size</x:String>
|
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">Size</x:String>
|
||||||
|
<x:String x:Key="STRING_CHOOSER_PROMPT_FILE_ALREADY_EXISTS">{0} already exists. Do you want to replace it?</x:String>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
@ -21,4 +21,5 @@
|
|||||||
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">更新日時</x:String>
|
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">更新日時</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">種類</x:String>
|
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">種類</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">サイズ</x:String>
|
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">サイズ</x:String>
|
||||||
|
<x:String x:Key="STRING_CHOOSER_PROMPT_FILE_ALREADY_EXISTS">{0} はすでに存在します。置き換えますか?</x:String>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
|
@ -21,4 +21,5 @@
|
|||||||
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">Дата изменения</x:String>
|
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">Дата изменения</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">Тип</x:String>
|
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">Тип</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">Размер</x:String>
|
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">Размер</x:String>
|
||||||
|
<x:String x:Key="STRING_CHOOSER_PROMPT_FILE_ALREADY_EXISTS">{0} уже существует. Вы хотите заменить его?</x:String>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
@ -21,4 +21,5 @@
|
|||||||
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">修改日期</x:String>
|
<x:String x:Key="STRING_CHOOSER_DATEMODIFIED_COLUMN">修改日期</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">类型</x:String>
|
<x:String x:Key="STRING_CHOOSER_TYPE_COLUMN">类型</x:String>
|
||||||
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">大小</x:String>
|
<x:String x:Key="STRING_CHOOSER_SIZE_COLUMN">大小</x:String>
|
||||||
|
<x:String x:Key="STRING_CHOOSER_PROMPT_FILE_ALREADY_EXISTS">{0} 已经存在。您要替换它吗?</x:String>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
Loading…
x
Reference in New Issue
Block a user