Browse Source

fix managed file dialog demo

Dan Walmsley 6 years ago
parent
commit
5cd0a43cbc

+ 9 - 9
samples/ControlCatalog.NetCore/Program.cs

@@ -1,14 +1,15 @@
 using System;
-using System.Collections.Generic;
 using System.Diagnostics;
 using System.Linq;
 using System.Threading;
-using System.Threading.Tasks;
 using Avalonia;
 using Avalonia.Controls;
 using Avalonia.LinuxFramebuffer.Output;
 using Avalonia.Skia;
 using Avalonia.ReactiveUI;
+using Avalonia.Dialogs;
+using System.Collections.Generic;
+using System.Threading.Tasks;
 
 namespace ControlCatalog.NetCore
 {
@@ -18,13 +19,10 @@ namespace ControlCatalog.NetCore
         static int Main(string[] args)
         {
             Thread.CurrentThread.TrySetApartmentState(ApartmentState.STA);
-            var b = BuildAvaloniaApp();
-            b.SetupWithoutStarting();
-            var window = new Window();
-            window.Show();
-            new OpenFileDialog()
+            if (args.Contains("--wait-for-attach"))
             {
-                Filters = new List<FileDialogFilter>
+                Console.WriteLine("Attach debugger and use 'Set next statement'");
+                while (true)
                 {
                     Thread.Sleep(100);
                     if (Debugger.IsAttached)
@@ -33,6 +31,7 @@ namespace ControlCatalog.NetCore
             }
 
             var builder = BuildAvaloniaApp();
+            
             if (args.Contains("--fbdev"))
             {
                 SilenceConsole();
@@ -60,7 +59,8 @@ namespace ControlCatalog.NetCore
                     AllowEglInitialization = true
                 })
                 .UseSkia()
-                .UseReactiveUI();
+                .UseReactiveUI()
+                .UseManagedSystemDialogs();
 
         static void SilenceConsole()
         {

+ 17 - 0
samples/ControlCatalog/MainWindow.xaml.cs

@@ -6,6 +6,7 @@ using Avalonia.Markup.Xaml;
 using Avalonia.Threading;
 using ControlCatalog.ViewModels;
 using System;
+using System.Collections.Generic;
 using System.Threading.Tasks;
 
 namespace ControlCatalog
@@ -28,6 +29,22 @@ namespace ControlCatalog
             };
 
             DataContext = new MainWindowViewModel(_notificationArea);
+
+            Dispatcher.UIThread.Post(() =>
+            {
+                new OpenFileDialog()
+                {
+                    Filters = new List<FileDialogFilter>
+                {
+                    new FileDialogFilter {Name = "All files", Extensions = {"*"}},
+                    new FileDialogFilter {Name = "Image files", Extensions = {"jpg", "png", "gif"}}
+                },
+                    Directory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
+                    Title = "My dialog",
+                    InitialFileName = "config.local.json",
+                    AllowMultiple = true
+                }.ShowAsync(this);
+            });
         }
 
         private void InitializeComponent()

+ 2 - 5
src/Avalonia.Dialogs/Avalonia.Dialogs.csproj

@@ -5,12 +5,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <EmbeddedResource Include="Internal\ManagedFileChooser.xaml">
+    <AvaloniaResource Include="**\*.xaml">
       <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Internal\ManagedFileDialog.xaml">
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
+    </AvaloniaResource>
   </ItemGroup>
 
   <Import Project="..\..\build\Rx.props" />

+ 2 - 1
src/Avalonia.Dialogs/Internal/ManagedFileChooser.xaml

@@ -3,7 +3,8 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
              xmlns:dialogs="clr-namespace:Avalonia.Dialogs.Internal"
-             xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal">
+             xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal"
+             x:Class="Avalonia.Dialogs.Internal.ManagedFileChooser">
   <UserControl.Resources>
     <internal:FileSizeStringConverter x:Key="FileSizeConverter" />
     <DrawingGroup x:Key="LevelUp">

+ 1 - 1
src/Avalonia.Dialogs/Internal/ManagedFileDialog.xaml

@@ -2,7 +2,7 @@
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:dialogs="clr-namespace:Avalonia.Dialogs.Internal"
         xmlns:internal="clr-namespace:Avalonia.Dialogs.Internal"
-        Icon="resm:WalletWasabi.Gui.Assets.WasabiLogo256.png?assembly=WalletWasabi.Gui"
+        x:Class="Avalonia.Dialogs.Internal.ManagedFileDialog"
         Title="{Binding Title}" Width="1100" Height="500" MinWidth="1100" MinHeight="500"
                       FontFamily="{DynamicResource UiFont}" FontSize="14"
                       Foreground="{DynamicResource ThemeForegroundBrush}">