C#
.NETのEncodingはクラスです。 docs.microsoft.com しかし、Encodingのインスタンス同士が比較できているような気がします。 そこで、簡単なコードで調べてみました。
これは、C# Advent Calendar 2017への投稿でもあります。24日が未投稿のままだったのでいただいちゃいました。 Eto.FormsでGUIアプリケーションを書いていると、個人的な範囲だと、Windowsだと問題ないのにLinux(GTK)だと挙動(特に初期設定)がおかしい、と…
先日の記事の補足です。 mokake.hatenablog.com DataContractJsonSerializerでJSONを生成すると、改行なしに1行になってしまいます。機械処理上はいいのですが、やはり人が見る場合もあるので、そこは考えてほしいところ。 ちょっと調べてみたら、実は簡単に…
Eto.Formsの記事を書いてきましたが、実はEto、プルダウンメニューに若干の問題があります。それは、「ファイル」メニューと「ヘルプ」メニュー。 プルダウンメニューの項目名を普通に日本語(正しくは英語以外)にすると、思わぬ結果になってしまいます。し…
ソフトウェアを作る時、日本語だけでOKというケースは多くはないでしょう。現代ではUnicodeが普及するなど、国際化(i18n)の基本部分は整備されてきましたが、文字列リテラルをソースに埋め込んだ状態だと、各国語対応(l10n)の手間が膨大になってしまいま…
以前、.NET標準のDataContractJsonSerializerの利用について少し書きました。 mokake.hatenablog.com このクラス、アプリケーション設定の保存や、ある種のデータの保存にも便利ですが、本格的に使おうとすると、詳細な動作が気になります。 データを格納す…
これも個人的な調査結果です。 Windows/.NET(4.5)とLinux(Ubuntu16.04)/Mono(4.2.1)での通信を試していたのですが、どうもうまく動作しませんでした。調べた結果、次のようなことが明らかになりました。 Linux/Monoで、IPAddress.Anyにバインドした場合、ブ…
ただの個人的な調査結果です。 C#で、次のような要求があると仮定します。 1つ以上のソース(UIなりネットワークなり)からデータが入ってくる データが入るスレッドは待たせない 入ったデータは1系列に整理(シリアライズ)され、すぐに処理(UIへの反映な…
前回のExpanderについて、XAMLで書いてみます。 結果(アプリケーションの見た目や動作)は前回と似ています。
ここまでで、Eto.Formsの主要なコントロールの多くは紹介してきたつもりです。 しかし、他にも紹介していない項目もあります。 今回は、公式APIにも載っていない(入れ忘れ?)コントロールであるExpanderを紹介します。
さて、Eto.Formsの紹介もかなり進んできました。あとは表とツリーあたりでしょうか。 しかし、表(GridView)については公式サンプルで十分かと思います。 なので、表は割愛してツリーについて紹介します。 Eto.Formsには、ツリー型のコントロールが2つあり…
少し凝った設定ダイアログを作る 今回は、もう少し要素の多い設定ダイアログを作ってみます。 作るもの メインウインドウは、文字列を表示するものとします。 (サンプル画像) Fileメニューから、Preferences...を選ぶと、設定ダイアログ。 次の設定ができ…
今回は、モーダルダイアログを作ってみます。 メインウインドウは、TextAreaが1つあるだけ 設定ダイアログは、メニューから開く 設定項目は、TextAreaの中身(文字列) メイン側ではTextAreaはReadOnly=trueとして変更は禁止 作るもの メインウインドウと、…
Eto.FormsはWebViewクラスでWebブラウザの利用が可能です。 では、さっそく簡単なサンプルを。 こんな感じです。
前回はXAMLで値をバインドしましたが、Vを起点に処理するためには、コマンドが不可欠です。現在のEto.Formsでも、ある程度のコマンドを扱うことができます。 サンプルプロジェクトを作成してみます。元ネタはXamarinのコマンドの説明です。 「イベントをコマ…
Eto.Formsのテンプレートでは、GUI定義の方法として次の3つを用意しています。 ソースコード(code) XAML JSON ここでは、XAMLでデータバインドを使う例を示します。 まず、テンプレートに基づいてプロジェクトを作成します。もちろんGUI定義は「XAML」を選…
Eto.FormsのForm(正確には親のWindow)クラスには、Iconプロパティがあります。ここにアイコンを設定すると、例えばWindowsならウインドウ左上やタスクバー上に表示されます。 ここでは、サンプルとして、Alessandro Rei氏のGPLなアイコンセット「Dark Glas…
今回は画像を表示してみます。Eto.Formsで画像を表示する主なクラスは、「Image」がつくクラスとDrawableクラスです。 Image~:画像表示のみ(画像であるImageインスタンス上では、ピクセル単位の色設定が可能) Drawable:Graphicsインスタンスを取得する…
GUIプログラミングといえばテキストエディタ(と個人的には思っているのです)。ということで、Eto.Formsでも簡単なサンプルを作ってみます。 できあがりは次のような感じです。
テンプレートのHello Worldはラベルを使っていたので、今度は他の基本のコントロールとしてボタンと1行テキストを使ってみます。 前回と同様、Eto Applicationプロジェクトを作成しますが、今回は、MainForm.csを大幅に書き換えてみます。 using System; usi…
この記事は、C# Advent Calendarの最終日(12月25日)の項目です。なお前日は smbkrysk14 さんの「Material Design In XAML ToolkitでWPFアプリにモダンなUIを!」でした。C#のアドベントカレンダーで2日連続でクライアントGUI関連というのは、ちょっとおも…
設定保存の基本 アプリケーション設定を保存するための手軽な手順はVisual Studioでの設定ですが、使い勝手など微妙な面もあります。 Visual Studioでアプリケーションの設定を保存する: .NET Tips: C#, VB.NET http://dobon.net/vb/dotnet/programing/myset…
前書き 2015年を「プログラミング」という点で見ると、個人的には「Electronがやたら騒がれた」という印象を受けます。 qiita.com 自分でも上記など試してみましたが、「JavaScript関連だけ経験がある人がデスクトップアプリケーションを作る」ためには、お…