SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

Xamarin.FormsがWPF&GTK#対応するっぽい!!

ここのところ、先週のBuild2017の動画を色々見て回ってたのですが、
↓のXamarin.Formsの動画の34:00~あたり。
https://channel9.msdn.com/Events/Build/2017/B8099

今後Xamarin.Formsが、WPFとかGTK#上での実行に対応するようです。

ロードマップや公式ブログを見てみると、2017 3Qあたりでの対応になるみたいなんで、意外とすぐに出てきそうな感じです。
https://blog.xamarin.com/glimpse-future-xamarin-forms-3-0/
https://forums.xamarin.com/discussion/85747/xamarin-forms-feature-roadmap/p1

今までのXamarin.Formsはモバイル環境にフォーカスしてましたが、
この辺が対応されると、Xamarin.FormsでWin/Mac/Linuxのデスクトップアプリも作れるようになります。

なんか、世間の話題はもっぱらXAML Standardの方に持ってかれてましたが、
これって結構ビッグニュースなんじゃないかな??

モバイルからデスクトップまですべてXamarin.Formsでできるなんて、メッチャ夢が広がりますね。

そろそろ、本腰入れてXamarin.Formsも使ってみようかな、と思いました。

knockout.jsでバインディング・コンテキストの値をデバッガで確認する方法

近年のフロントエンド界隈では、Knockout.jsはあまり話題に上らなくなっちゃいましたね。。。
ですが、自分は以前Knockout.jsで書いてたプロジェクトを弄ったりと、今でも結構使ってます。

あと、なんだかんだ言って、双方向データバインディングだけあれば十分ってケースでは、 Knockout.jsのシンプルさは今でも魅力的ですしね。

で、Knockout.jsを使ってHTML上でバインディング定義をしていると、
要素のコンテキストがどんな値になっているか、、、を確認したくなる時がちょくちょくあります。

ちなみに、Chrome用では↓こんな便利な拡張機能があります。
http://qiita.com/sasaplus1/items/8c5a2216f3cb15b792c5
https://chrome.google.com/webstore/detail/knockoutjs-context-debugg/oddcpmchholgcjgjdnfjmildmlielhof

でも、拡張機能などを使わなくても、ブラウザの開発者ツールを活用してお手軽に確認することもできます。

手順

  1. 開発者ツールを開いて、DOM Explorer的なヤツから、目的のDOM要素を選択します。
  2. 続いて、コンソールを開き、以下のコマンドを実行します。
Ko.contextFor($0)

するとこんな風に、コンテキストに設定されているオブジェクトの値を確認できます。
f:id:minami_SC:20170516004442p:plain

ここでは、Edgeでやっていますが、IE11, Chrome, Firefoxなどのブラウザでも、だいたい同じような手順で確認できます。

GLFWを使ってみた

OpenGLでちょろっとウィンドウ表示をする時などには、GLUTをよく使っていたのですが、
近年(と言っても随分前から)ではGLFWというものもよく使われているようです。
http://www.glfw.org/documentation.html

先日↓に書いた、NupenGLというパッケージをインストールすると、このGLFWも利用できるようになるので、使ってみました。

とはいっても、自分は最近あまりC++を積極的に使ってないので、 HelloWorldレベルのコードをメモ書き程度で・・・

続きを読む

CretatorsUpdateから、UWPでもTypeConverter的なものが使えるようになりました

WPFとUWPでは、同じXAMLという仕組みを用いていますが、細かい部分を見ると「アレがない」「コレがない」といった、細かい違いがあります。

そんな違いの一つとして、「UWPにはTypeConverterがない」という違いがありました。

ですが、Windows 10 Creators Updateからは、UWPでも簡単にTypeConverter的なものを作れるようになりました。
(あくまでも「的な」ものなので、TypeConverterとはちょっと実装方法が異なります。)

コレ、結構便利な変更点だと思うんだけど、全然話題になってないのでまとめてみたいと思います。

サンプルコードは以下の場所に置いておきました。 github.com

続きを読む

UWPでのファイル・ストレージ操作

今まで、ちゃんとしたUWPアプリ作ってなかったので、ファイル操作などはほとんど扱ってませんでした。。。
ですが、本格的なアプリを作ろうと思うと、この手のファイル操作はが必要になる場面は多いですよね。

ということで、ファイル・ストレージ操作でよく使いそうなものをメモしておこうと思います。

  • ファイル/フォルダ選択ダイアログ
    • ファイルを開くダイアログ
    • フォルダを開くダイアログ
    • ファイルの保存ダイアログ
    • ファイルの読み書き
      • ファイルへの書き込み
      • ファイルからの読み込み
      • ファイル書き込みの結果チェック
  • ストレージ操作
    • LocalFolder/RoamingFolder
      • 書き込み
      • 読み込み
    • LocalSettings/RoamingSettings
      • 書き込み
      • 読み込み
  • その他
    • KnownFolderへのアクセス
    • MostRecentlyUsedList/FutureAccessList
      • MostRecentlyUsedListへの記録
      • MostRecentlyUsedListに記録された項目へのアクセス
    • Credential Locker
      • パスワード情報の保存
      • パスワード情報の取得
      • 保存済みのパスワード情報の削除
続きを読む

MADOSMA Q501をinsider previewにしてCreators Updateにしてみました

先月のMSからのアナウンスで、残念ながら初代MADOSMA Q501はCreators Update対象外となってしまいました。

ですが、insider previewであれば、非サポートですが自己責任でCreators Updateに更新できるとのことでした。
てことで、insider previewをスローリングにして待ってましたが、いつまで待っても更新が来ない。。。

ちょっと調べてみると、どうやらQ501のファームバージョンが1.0.0.16などの古いファームだと、insider previewは降ってこないようです。
ということで、今まで面倒だと思ってやってなかったファームの手動更新をして、Creators Updateに更新してみました。

Q501をCreators Updateにする手順

ファームウェアの手動更新

↓のページでシリアルNo.の欄にIMEIを入力すると、ファームの更新方法などの案内があります。
https://www2.mouse-jp.co.jp/ssl/user_support2/sc_download.asp
この手順にある程度沿ってやってみました。

案内されたページでは、Windows 10 ADKというツールでのファーム更新方法が案内されています。

自分はとりあえず、以下のページから「Windows ADK for Windows 10 Version 1703」という最新バージョンのツールをインストールしてみました。
https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit

しかし、このバージョンの「Windows イメージングおよび構成デザイナー」では、 マウスのサポートページで案内されていた、「展開」メニューが表示されずファームの書き込みができません。。。

ということで、サポートページで案内されていた通りのWindows 10 ADK(1511)をインストールしてみたところ、ちゃんとファームの書き込みまで行えました。

手動更新は結構面倒ですね。。。

ファームウェアの手動更新完了後

手動でファーム書き換えてみたら、OSが10.0.10586.164になってました。

「システムの更新」からOSのアップデートをかけると、Anniversary Updateの状態まで更新できます。
そこまで更新してから、Windows Insider Programを有効にして「スロー」リングに設定すると、システムの更新でCreatorsUpdateを取得できます。

何度も更新かかるので、かなり時間がかかりますが、無事CreatorsUpdateまで更新できました。
これでQ501ももうしばらく活用できそうです。

VS2017でOpenGLとGLUTを使う手順

OpenGLを使って、簡単にクロスプラットフォームなコードを書くための、GLUTというライブラリがあります。
ちょっと必要に迫られて、久しぶりにGLUTを使う機会があったので、VS2017でGLUTを使うまでの手順をざっとまとめておこうと思います。

GLUT使うのは、5~6年ぶりくらいかな。。。
単純なグラデーションを描いたりしただけですが、とても懐かしい気持ちになりましたw

続きを読む