grabacr07 / metroradiance Goto Github PK
View Code? Open in Web Editor NEWModern WPF Themes (like Visual Studio 2012 or later).
Home Page: http://grabacr.net/archives/1105
License: MIT License
Modern WPF Themes (like Visual Studio 2012 or later).
Home Page: http://grabacr.net/archives/1105
License: MIT License
最大化の状態で元に戻す(縮小)を押すと
光った枠がウインドウから外れて、先に縮小したように見えます。
Visual Studioを見てみるとこれは起こりません。
多分元に戻すまで一旦光をオフにした方が見栄がいいと思います。
例えば RibbonWindow
を使っている場合や、独自のウインドウクラスに対して VSライクな光る枠だけを適用する方法はあるでしょうか?
以下の方法を試してみたのですが、ビジュアルツリー状は何やら枠らしきウインドウが4つ増えているのですが、透明で、光っているような見栄えになりませんでした。
WPFプロジェクトを新規に作成し、MainWindow.xaml
に以下を追加。
<chrome:WindowChrome.Instance>
<chrome:WindowChrome />
</chrome:WindowChrome.Instance>
ショーケースを参考に、App.xaml.cs
に以下を追加。
public partial class Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
this.ShutdownMode = ShutdownMode.OnMainWindowClose;
ThemeService.Current.Register(this, Theme.Windows, Accent.Windows);
}
}
さらにMainWindow に WindowLoaded
イベントハンドラを追加し、以下のようにテーマやアクセントカラーの変更もしてみましたが、変化なし。。。
ThemeService.Current.ChangeTheme(Theme.Dark);
ThemeService.Current.ChangeAccent(Accent.Blue);
他に何が必要でしょうか?
MahApps.Metro で使われていたりと需要が無いわけではなさそうですし、せっかくなのでライブラリ化しようと思います。
私の勝手な名前付け規則ですが、とりあえず以下のような構成で考えています (というか、既に私の手元で進めています)。
また、これに伴って、何も考えてなかったライセンスも設定したいです。
MIT License にしようと思いますが、いかがでしょ。
Hello,
I'm getting errors when installing nuget package.
.NET Framework 4.6+
Install-Package : Failed to add reference. The package 'MetroRadiance' tried to add a framework reference to 'Microsoft.Expression.Interactions' which was not found in the GAC. This is possibly a bug in the
package. Please contact the package owners for assistance.
Reference unavailable.
At line:1 char:1
+ Install-Package MetroRadiance
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
上下の境界線をダブルクリックすると、垂直方向の最大化ができます。その実装が行われていないので、この動作を行う API についていろいろ調べてみたのですが、この動作に関する API の情報が見つかっておりません。
打開策として Win+Shift+↑ を投げつける方法がありますが、ベストではないと思われるので、問題として投げておきます。
below is the log:
Install-Package : Could not install package 'MetroRadiance.Core 2.1.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
- CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException
- FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand
ContentRenderedイベントがWindowがとじた後に発生していることが原因らしく、
ContentRenderedイベントハンドラ内のShowしている個所で例外が発生する。
○ stack trace
System.InvalidOperationException はユーザー コードによってハンドルされませんでした。
HResult=-2146233079
Message=Window が閉じた後で、Visibility の設定や、Show、ShowDialog、および WindowInteropHelper.EnsureHandle の呼び出しを行うことはできません。
Source=PresentationFramework
StackTrace:
場所 System.Windows.Window.Show()
場所 MetroRadiance.Chrome.Internal.GlowWindow.<.ctor>b__3(Object sender, EventArgs args)
場所 System.EventHandler.Invoke(Object sender, EventArgs e)
場所 System.Windows.Window.b__4(Object unused)
場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
場所 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
InnerException:
During application maximize for VS2012 like window (3), some portion of the window gets cut. Can that be fixed?
How can I get the Livet.dll?
I can't compile the project without Livet.dll and Microsoft.Expression.Interactions dll.
The package MetroRadiance
can't be installed in dotNET 4.8 projects and this issue is originally posted by @TekuSP in #26 (comment) because utilities in System.Windows.Interactivity
are moved to Microsoft.Xaml.Behaviors
(GitHub Repo / NuGet Package) by Microsoft.
Run Install-Package Microsoft.Xaml.Behaviors.Wpf
in Package Manager
Replace using System.Windows.Interactivity;
with using Microsoft.Xaml.Behaviors;
like this in my fork
MainWindowからSubWindowを開く際に、Ownerを指定しShowで指定した場合、
GrowWindowのみ、他のWindowの背後に隠れることがある。
// MainWindowにて
var w = new SubWindow { Owner = this };
w.Show();
○手順1
1.MainWindowからSubWindowをOwner指定で開く
2.MainWindowをクリックし、Activeにする
-> SubWindowのGrowWindowがMainWindowの背後に隠れる
○手順2
1.MainWindowからSubWindowをOwner指定で開く
2.MainWindowをクリックし、Activeにする
3.他のアプリケーションのWindowを半分重ねる
4.SubWindowをクリックしActiveにする
-> MainWindowのGrowWindowが他アプリの背後に隠れる
SubWindowのGrowWindowがMainWindowの背後に隠れる
Windows 9 (おそらく NT 6.4) 以降も引き続き Per-monitor DPI に対応すると思われますが、次の部分:
I think Windows 9 (maybe NT 6.4) or later implement per-monitor DPI continuously. Look at this:
public static bool IsSupported
{
get
{
var version = Environment.OSVersion.Version;
return version.Major == 6 && version.Minor == 3;
}
}
https://github.com/Grabacr07/MetroRadiance/blob/master/MetroRadiance.Core/PerMonitorDpi.cs#L26
より、 Per-monitor DPI が Windows 9 で対応してても使えないことが予想されます。version.Major >= 7 || (version.Major == 6 && version.Minor >= 3)
とするのが望ましいと思いますが、皆さんはどう思いますか?
Users don’t use per-monitor DPI if Windows 9 implements it. I think its program changes to version.Major >= 7 || (version.Major == 6 && version.Minor >= 3)
better. How about you?
タスクバーの設定で「タスクバーを自動的に隠す」にした場合、
MetroRadianceを利用したWindowを最大化すると、画面の端までマウスカーソルを移動させても
タスクバーが表示されなくなる。
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.