Eto.Forms.FontDialogを使ってみた
表示領域を分離する。幅をドラッグ&ドロップで変更できる。
成果物
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch(9.0) 2018-06-27
- Mono 5.16.0
- MonoDevelop 7.6 build 711
- Eto.Forms 2.4.1 拡張機能, NuGetパッケージ
- .NET Core 2.2, MonoDevelop参照方法
ソースコード
MainForm.cs
using System; using Eto.Forms; using Eto.Drawing; namespace Hello0 { public partial class MainForm : Form { private RichTextArea textarea1; private WebView webView1; private FontDialog fontDialog1; public MainForm() { Title = "Splitter"; ClientSize = new Size(800, 600); CreateUi(); } private void CreateUi() { //textarea1 = new RichTextArea() { Width=this.Width/2, Height=this.Height, Text="何かしらの文字列。" }; textarea1 = new RichTextArea() { Width=1, Height=1, Text="何かしらの文字列。" }; textarea1.Focus(); textarea1.KeyDown += Textarea1_KeyDown; webView1 = new WebView() { Width=1, Height=1, Url=new Uri("https://www.google.co.jp") } ; //webView1 = new WebView() { Width=this.Width/2, Height=this.Height, Url=new Uri("https://www.google.co.jp") } ; var splitter= new Eto.Forms.Splitter(); splitter.Panel1 = textarea1; splitter.Panel2 = webView1; //splitter.Panel1.Width = this.Width / 2; fontDialog1 = new FontDialog(); fontDialog1.FontChanged += Dialog_FontChanged; Content = new TableLayout() { Padding = 0, Spacing = new Size(0, 0), Rows = { new TableRow(splitter), } }; } void Textarea1_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Keys.Escape) { fontDialog1.ShowDialog(textarea1); } } void Dialog_FontChanged(object sender, EventArgs e) { textarea1.Font = fontDialog1.Font; } } }
所感
本当はテキストエリアの右クリックメニューに追加したかったのだが方法がわからなかったので、とりあえずキーイベントで実装した。