2018年5月12日土曜日

WPF コモン パネル

WPFのアプリをデザインするに当り、各コントロールを配置する下地と言うべき「パネル」と言う概念がある。

以下は、VS2017のWPFデザイナ(XAML)のツールボックスに表示される「コモン WPF コントロール」内にあるパネル系を説明。


この中にあるパネル系は、以下の3点。

  • Grid
    昔のデザイナ(Windowsフォーム)の感覚に近い配置が可能なパネル。
    だいたいがこのパネルで設計する。
  • StackPanel
    コントロールを左上から、縦または横一列にしか配置できない。
    たぶんモバイルアプリ用と思われるパネル。

「すべての WPF コントロール」には、この他にも WrapPanelCanvas と言うパネルがある。
  • WrapPanel
    コントロールを左上から横一列に配置して行くが、パネル幅を超えると右端で折り返すように配置されるパネル。
    たぶんモバイルアプリ用と思われるパネル。
  • DockPanel
    コントロールを上下左右にドッキングしながら配置するパネル。
    たぶんモバイルアプリ用と思われるパネル。
  • Canvas
    自由に配置ができるが、配置位置が固定されるパネル。
    ストレッチ(拡大縮小)が許されないパネル。

これ以外にもあるけど、用途が限られるので割愛。
ちゃんちゃん。

はじめての Visual Studio Community 2017 その2

ASP.NET Core MVC と Visual Studio の概要」と言うMicrosoftの記事を無視して
とりあえず適当なアプリを作ってみる。



プロジェクトを新規作成→VisualBasicのWPFアプリ(.NET Framework)を選択。



やっべ、久しぶり過ぎて、訳わからんw VisualBasic 6.0時代とは大違い(当たり前)
とりあえずボタンやテキストを配置する為のツールバーを探してみる。


左側に「ツールボックス」があったので、クリック。
メニューバーの「表示(V)」→「ツールボックス(X)」でも開く。

とりあえず右上のピンで固定する。
Labelを配置して、次にButtonを配置・・・あれ?先に配置したLabelが消える。

どうやらStackPanelまたはCanvas等を先に配置しないと、複数のコントロールを配置できないようだ。

これが WPF(Windows Presentation Foundation)か・・・。
WPFの概要をググッて確認。
WPF のコアとなるのが、最新のグラフィックス ハードウェアを利用するように構築された、解像度に依存しないベクター ベースのレンダリング エンジンです。このコアは、Extensible Application Markup Language (XAML)、コントロール、データ バインディング、レイアウト、2-D グラフィックスおよび 3-D グラフィックス、アニメーション、スタイル、テンプレート、ドキュメント、メディア、テキスト、タイポグラフィなど、WPF が備えているアプリケーション開発機能の包括的なセットによって拡張されます。
なるほど。
解像度に依存しないベクターベースで描画されるウィンドウがキモなのか。

Windowsのディスプレイの設定に「拡大縮小とレイアウト」と言う項目があるが、125%モードや、カスタム スケーリングに意識しなくても対応できるのだろう。


Labelコントロールに名前を付けて、ButtonコントロールのClickイベントにコードを記述
Class MainWindow
    Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
        lab1.Content = "Hello World!!"
    End Sub
End Class
ウィンドウの構成(XAML)は以下の通り。
<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="190" Width="266">
    <StackPanel HorizontalAlignment="Left" Height="154" Margin="6,9,0,0" VerticalAlignment="Top" Width="239">
        <Label x:Name="lab1" Content="さぁ 新しい扉を開こう!" HorizontalAlignment="Left" Height="56" Margin="19,0,0,0" Width="192"/>
        <Button Content="ここをクリック" HorizontalAlignment="Left" Height="63" Margin="19,0,0,0" Width="192" Click="Button_Click"/>
    </StackPanel>
</Window>
誰かが似非XMLって言った(笑
んでデバックで実行を確認し、ビルド。 デバック(F5)で実行されるが激しく遅い。

それに対してビルドは一瞬。
以下、実行結果。


左がクリック前で、右がクリック後。
お決まりのHello World!!

はじめての Visual Studio Community 2017

Visual Studio Community 2017 初回起動時。

最初はチュートリアルから→「最初のアプリを 5分で作成しましょう。」をクリック。
ASP.NET Core MVC と Visual Studio の概要」と言うMicrosoftの記事に飛ぶ。

ち、ゲームみたいに進まないのか。 ツマラナイなw

ゲームのチュートリアルみたく、ポンッポンッポンッと進んで行って
5分でアプリできた☆とかなったら面白いのに。

Unity 初回実行時のライセンス確認

unity 初回実行時のライセンス確認が英語なのでメモ。

「Unity Personal」 を選択。


ライセンス契約(License agreement)の確認。

上から順に「年間売上が10万$以上の組織で使用」、「年間売上が10万$未満の組織で使用」、「仕事して使用しない」とあるので、「I don't use Unity in a professional capacity.」を選択。

このライセンス画面はテキストを選択できないので、翻訳サイトにコピペできない。
そこで画面キャプして.pngとして保存。

Googleドライブにコピーした後、Googleドキュメントで開くとOCR機能が働き、テキストを抽出してくれるので、それをGoogle翻訳して調べた。

その後、簡単なアンケート(Quick and easy surver.)がある。

Unityの用途は?(In what capacity do you primarily use Unity?)
 →個人利用なので「Hobbyist - use Unity in my free time」を選択。

あなたの職業は?(What is your primary role?)
 →Programmerを選択。

Unityの理解度(How would you rate your Unity skills?)
 →初めてなので「Absolute beginner-never used Unity before.」を選択。

興味のあるプラットフォームは?(Platforms of interest)
 →Android/iOS/Google Cardboard/Windowsを選択。

制作予定の用途は?(What type of project do you primarily plan to develop with Unity?)
 →まだ判らないので「Don't kown.」を選択。

ちゃんちゃん。

再起動して1分後のパフォーマンス モニター

再起動して1分後のパフォーマンス モニターの状態

Visual Studio Community 2017をインストールしてみる

個人開発者は無償でOKな開発環境である、Visual Studio Community 2017をインストールしてみる。

公式サイト

ページ下部にダウンロード リンクがある。

2018/05/12時点で「vs_community__649145231.1526081341.exe」がダウンロードされた。

インストールを開始すると、使用するパッケージ(ワークロード)を選択するようだ。
「.NETデスクトップ開発」と「.NETによるモバイル開発」、「Unityによるゲーム開発」の3点を選択。

各オプションは、とりあえずそのままでインストール開始。
選択されたパッケージがダウンロードされて、随時インストールされて行く。

ダウンロードされた後、自動インストールが行われ
10Mbps環境下で1時間30分後に再起動を促すメッセージが表示された。