2018年5月12日土曜日

はじめての 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!!

0 件のコメント:

コメントを投稿