Reusable Shell components from AvalonStudio.
vitalelement / avalonstudio.shell Goto Github PK
View Code? Open in Web Editor NEWReusable Shell components from AvalonStudio.
License: GNU Lesser General Public License v2.1
Reusable Shell components from AvalonStudio.
License: GNU Lesser General Public License v2.1
Is the usage of this limited in terms on who can use it? For example if I want to do my own app am I allowed to use this library? Not for commercial use of course.
I created a Windows installer with Wix and I noticed that the software wasn't working. The reason being is that you can never work next to the exe, since that is located in the Program Files, which needs admin access and the software as launched it doesn't have that.
So, in AvalonStudio.Shell, the Extensions
folder couldn't be created, thus the software failed to launch. The code below does this in AvalonStudio.
public static string ExecutionPath => Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
public static string ExtensionsFolder => Path.Combine(ExecutionPath, "Extensions");
I suggest changing the second line to this:
public static string ExtensionsFolder => Path.Combine(BaseDirectory, "Extensions");
Since I have no idea what that does, my question is: is it safe to change this? (I didn't test.)
Related issue: WalletWasabi/WalletWasabi#686
Make CancelCommand virtual
Add something like virtual OnShown or observable property. I would like to start my operations at that phase. Now if I create a dialog and call Close before the call of ShowDialogAsync then dialogCloseCompletionSource will generate NRE.
Put throw new Exception();
to .AfterSetup(_ =>
and the software will hang instead of crash. This is a deeper look into WalletWasabi/WalletWasabi#2843.
I've noticed there's a wasabi-tmp
branch that's not used anymore in this repo. This is a bit confusing it can be deleted.
For help I paste here the commands: https://stackoverflow.com/a/10999165/2061103
git branch -D wasabi-tmp
git push origin --delete wasabi-tmp
Right now there's a problem with View location, as it tries to find view by string replacement in AvaloniaStudioDocumentTab
type name from DockExtensions
.
I'm interested in this project and may help with development, but since the sample app doesn't really work, it's hard to get a grip of functionality.
While at it, I think a NuGet.config with appropriate feeds added would be nice, since otherwise this project can't be built from fresh clone.
Aaand there's no License. :)
Awesome work!
This needlessly limit the power of what we can do with it.
There is no such theme in AvalonStudio.Shell/Themes/ folder
which is needed in ShellExampleApp/App.paml for example.
Another problem is when I tried to customize platform-specific window (from this advice AvaloniaUI/Avalonia#776)
I added AvalonStudio.Shell 0.9.0-preview7 package
Added styles in App.xaml
<StyleInclude Source="avares://AvalonStudio.Shell/Themes/BaseDark.xaml"/> <StyleInclude Source="avares://AvalonStudio.Shell/Themes/Accents/DarkAccent.xaml"/> <StyleInclude Source="avares://AvalonStudio.Shell/Icons/Icons.xaml"/> <StyleInclude Source="avares://AvalonStudio.Shell/Controls/MetroWindowTheme.paml" /> <StyleInclude Source="avares://AvalonStudio.Shell.Extensibility/Controls/ControlTheme.paml" /> <StyleInclude Source="avares://AvalonStudio.Shell/Styles/GlobalStyles.xaml" />
And derived MainWindow from AvalonStudio.Shell.Controls.MetroWindow
This is work on window, but doesn't work on mac
dotnet App.dll
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at AvalonStudio.Shell.Controls.MetroWindow..ctor()
at App.Views.MainWindow..ctor() in \Projects\App\Views\MainWindow.xaml.cs:line 9
at App.App.OnFrameworkInitializationCompleted() in \Projects\App\App.xaml.cs:line 14
at Avalonia.Controls.AppBuilderBase1.Setup() at Avalonia.Controls.AppBuilderBase
1.SetupWithLifetime(IApplicationLifetime lifetime)
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime[T](T builder, String[] args, ShutdownMode shutdownMode)
at NTS.Desktop.Program.Main(String[] args) in \Projects\App\Program.cs:line 12
Abort trap: 6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.