2023年2月4日 土曜日 17:13

【プログラミング初心者向け】C#・WPFで計算機アプリを作ってみよう Part2(スタイル作成編)

【プログラミング初心者向け】C#・WPFで計算機アプリを作ってみよう Part2(スタイル作成編)

※本記事はプログラミング初心者向けです。これまでにアプリを作ったことがある、プログラミングをしたことがある方にはレベルが低すぎるのでご了承ください。

皆様こんにちは。リラ吉です。

前回は計算機アプリの設計をしました。今回から設計を元にUI部分(レイアウト)を作成していきます。

本記事ではVisual Studioを起動し、スタイルを作るところまで行います。

Visual Studioの起動

まずはPart0でインストールしたVisual Studioを起動します。起動したら「新しいプロジェクトの作成」をクリックします。

新しいプロジェクトの作成画面が表示されたら検索ボックスに「wpf」と入力して検索、検索結果の中から「WPF アプリケーション」を選択します。この時、下の画像のようにC#のものを選択してください。

WPFとは簡単に言えば「UIがあるアプリケーションを作ることのできるもの」になります。UIの定義はかなり広いものではありますが、ここでいうUIは「使用者とプログラムをつなぐ画面」になります。

計算機の場合は計算機画面というUIがあって、使用者がボタンを押すと計算をするプログラムが動くことになります。WPFではこのUI、つまり計算機の画面を作ることが出来るということです。

話を戻して。「WPF アプリケーション」を選択出来たら「次へ」を押して、プロジェクト名を入力します。今回は「Calc」にしました。「場所」についてはデフォルトのままで大丈夫です。入力出来たら「次へ」を押します。

追加情報画面に遷移したらデフォルト設定のまま「作成」を押します。

「作成」を押すと下の画像のような画面が表示され、プロジェクトが作成されます。これでプログラムを書く準備が出来ました。

現在プログラムを書く場所とUIを表示する場所上下に分かれています。上の画像の白い四角形部分がUIを表示する場所、その下のプログラムが書いてある四角い欄が見た目通りプログラムを書く場所です。

この状態だとプログラムを書く欄が小さすぎて書きずらいと感じる方がいらっしゃるかもしれません。

そのように感じた方は下の画像のボタンをクリックし、 プログラムを書く画面とUIを表示する画面を分けても良いかと思います。もし同じ画面でいいよという方はクリックしなく点も大丈夫です。

クリックしたら今後は画面左下の「デザイン」「XAML」でUIとプログラムを書く画面を行き来できるようになります。今回はこのように画面を行き来しながら作っていきます。

サイズを変更する

次にUIのサイズと名前を変更してみます。現在はアプリケーションが横長でMainWindowという名前になっています。

これを設計した計算機と同じで縦長で名前も違うので変更していきます。

変更はMainWindow.xamlのXAMLをクリックし、プログラムを書く画面に遷移させ、TitleとHeight、Widthを変更します。下の画像の部分ですね。

今回は下記のように変更しました。

Title="Karl Claytor" Height="700" Width="500" >

解説をするとTitleはアプリケーション名になります。今回は「Karl Claytor(Calculatorをもじった名前)」にしました。

そしてHeight(縦)を700pixel、Width(横)を500pixelにしました。

アプリケーション名はお好きなものをつけていただいて大丈夫です。サイズに関してもご自分でいい感じと思えるものを設定していただいて大丈夫です。

この状態でデザインを見ると縦長になって、左上を見ると名前も変わっていることが確認できます。これでサイズ変更は完了です。

スタイルの作成

次にスタイルを作っていきます。スタイルとは文字や背景の色はもちろん、カーソルを当てたときの動作などの設定です。つまり基本となるデザインですね。

直接MainWindow.xamlにスタイルを書いても良いのですが、今回はスタイル用のxaml(ControlStyle.xamlというファイルにします)を作成します。

ちなみxamlは簡単に言うとUI関係(表示や操作)に関わる部分を書く場所です。MainWindow.xamlはアプリケーション本体(今回の場合は計算機本体)のUIに関するプログラムを書く場所になります。

今回、直接MainWindow.xamlにスタイルを書かない理由は今後他のプログラムを書く際にそのスタイルを書いたファイルを流用できるからです。

他のアプリケーションを開発する際に今回作ったファイルをコピーしてきて流用し、使用したいスタイルがファイル内にあればそれを使い、なければ新しく追記して開発、次のアプリケーション開発でもファイルを流用し、ということが可能になります(ただファイルに記述したスタイルが膨大になるとアプリケーションが遅くなることがあるので注意)。

どういうことかといいますと、例えば今回の計算機アプリの開発ではボタンのスタイル(デザイン)を作ります。その後皆様がエレベーターをシミュレーションしたアプリを作るとします。その時に

そういえば計算機を作った時にボタンのスタイル(デザイン)作ったな。よし、次に作るエレベーターのシミュレーションアプリのボタンは計算機アプリで作ったControlStyle.xamlをコピーしてきて同じスタイルを使おう

ということが出来るということです。

では早速スタイルを作っていきます。

まずはソリューションエクスプローラーの「Calc」の上で右クリック、追加→新しいフォルダを選択します。この時のフォルダ名は「Resources」にします。

今度は作成した「Resourcesフォルダ」の上で右クリックし、同様にフォルダを作成します。今度はフォルダ名を「Styles」にします。現在、下の画像のようになっているかと思います。

今度はStylesの上で右クリックして追加→新しい項目を押します。

遷移したら「リソース ディクショナリ(WPF)」をクリック、ファイル名を「ControlStyle」にして「追加」を押します。「追加」を押す前は下の画像の状態になっているはずです。

「追加」を押すとStylesの下にControlStyle.xamlが作成されます。ここにスタイルを書いていきます。

ControlStyle.xamlをクリックすると、下の画像の画面が表示されます。この記事の最初にやったようにプログラムを書く画面とUIを表示する画面を分けていきます。

分けたら「XAML」にプログラムを書いていきます。「デザイン」が選択されている方は「XAML」を押してプログラムを記述する画面に遷移させます。

遷移したらスタイルを書いていきます。スタイルの内容は下記の通りです。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style x:Key="CalcButton" TargetType="{x:Type Button}">
        <Setter Property="SnapsToDevicePixels" Value="true" />
        <Setter Property="OverridesDefaultStyle" Value="true" />
        <Setter Property="FocusVisualStyle" Value="{x:Null}" />
        <Setter Property="Background" Value="#f5f5f5" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border TextBlock.Foreground="{TemplateBinding Foreground}" 
                            x:Name="Border" BorderBrush="DarkGray" Background="{TemplateBinding Background}" CornerRadius="10" BorderThickness="1">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <ColorAnimationUsingKeyFrames 
                                            Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
                                            Storyboard.TargetName="Border">
                                            <EasingColorKeyFrame KeyTime="0" Value="#A3AAAE" />
                                        </ColorAnimationUsingKeyFrames>

                                        <ColorAnimationUsingKeyFrames 
                                            Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)"
                                            Storyboard.TargetName="Border">
                                            <EasingColorKeyFrame KeyTime="0" Value="#A3AAAE" />
                                        </ColorAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <ColorAnimationUsingKeyFrames 
                                            Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
                                            Storyboard.TargetName="Border">
                                            <EasingColorKeyFrame KeyTime="0" Value="#EEEEEE" />
                                        </ColorAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <ColorAnimationUsingKeyFrames 
                                            Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
                                            Storyboard.TargetName="Border">
                                            <EasingColorKeyFrame KeyTime="0" Value="DarkGray" />
                                        </ColorAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter Property="TextBlock.Foreground" Value="#666"></Setter>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="CalcText1" TargetType="{x:Type TextBlock}" >
        <Setter Property="Foreground" Value="#000000" />
        <Setter Property="FontSize" Value="32" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Foreground" Value="#FBBC05" />
                <Setter Property="FontSize" Value="32" />
            </Trigger>
        </Style.Triggers>
    </Style>

    <Style x:Key="CalcText2" TargetType="{x:Type TextBlock}" >
        <Setter Property="Foreground" Value="#4285F4" />
        <Setter Property="FontSize" Value="32" />
    </Style>
</ResourceDictionary>

このプログラムを書くと下の画像のようになるかと思います。

細かい説明については補足記事を書きますので、今はコピペをしておいてください。

スタイルを使えるようにする

スタイルを作成しましたが、作ったスタイルを使えるようにしなければなりません。

アプリケーション本体(今回の場合は計算機本体)でスタイルを使えるようにするために、UIに関するプログラムを書く場所であるMainWindow.xamlにスタイルを使うための下記のプログラムを書きます。

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Calc;component/Resources/Styles/ControlStyle.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

このプログラムで作成したスタイルが使えるようになります。 「<ResourceDictionary Source=”/Calc;component/Resources/Styles/ControlStyle.xaml”/> 」で ControlStyle.xamlがソースだよ」と定義しています。

このプログラムを書く場所はMainWindow.xamlのTitle(8行目)の下、10行目あたりに書きます。下の画像の場所になります。

これでスタイルが使用できるようになります。

今回の記事は以上です。次回の記事では「Gridの作成」をしていきます。

ここまでお読みいただきありがとうございました。

それではまた。

リラ吉

にほんブログ村 にほんブログ村へ

関連記事

【宿泊記】加賀屋の能登渚亭311号室の部屋、食事を解説

皆様こんにちは。リラ吉です。 昨年、日本一と言われている旅館「加賀屋」に宿泊しましたが、先日露天風呂付の別のお部屋に宿泊できました。 今回の記事では加賀屋さんの「能登渚亭・温泉露天風呂付き和洋室 311号室」について書きたいと思います。 加賀屋について 加賀屋とはまず加賀屋ですが、石川県七尾市の和倉温泉にある温泉旅館です。 「プロが選ぶ日本のホテル・旅館100選」(全国の旅館業者の中から選定)の総合部門1位を36年連続を受賞したことから「日本一の旅館」と言われています。 アクセスアクセス方法は車、高速バス、和倉温泉駅(JR七尾線・のと鉄道七尾線)から徒歩25分、バスで12分(バス10分、バスを降りてから徒歩2-3分)、タクシーで5分、駅からの送迎になります。 送迎は12時からとなっておりますので、早めに来て荷物だけ預けさせていただいて観光をしたいという方は和倉温泉駅からバス、タクシーで行くのが良いかと思います。 部屋 部屋は大きく分けて下記の5種類があります。 浜離宮雪月花能登渚亭能登客殿能登本陣 浜離宮が最高ランクで次が雪月花になります。 喫煙室と禁煙室がありますので、宿泊の際はどちらを希望するのか伝えたほうがいいかと思います。 能登渚亭311号室 私たちが宿泊したのは能登渚亭にある311号室になります。 311号室の詳細はは下の映像を見ていただけたらと思います(音が出ますのでご注意ください)。 映像の通り、温泉露天風呂付、フィットネスバイク付、デスク付き、LG Styler(クリーニング機)付の広めのお部屋です。段差が一切ないのも特徴です。 このタイプのお部屋は311号室しかなく、特別なお部屋になっています。 非常に快適なお部屋ですが、欠点を挙げるのであれば「海が見えない」ということです。 お部屋が海側にないため、海を見ながら食事をする、露天風呂に入る等ができません。海側にこだわる場合は海に面しているお部屋をお勧めします。 その他だと和室で食事ができないのも欠点と感じる方がいらっしゃるかもしれません。昨年宿泊したお部屋は和室で座椅子に座って食べましたが、311号室はテーブルでの食事になります。 施設 施設については売店については一つの小さな商店街なのではないかというくらい多くの店があります。お菓子などのお土産や加賀谷さんの入浴剤や浴衣も購入できますし、九谷焼、山中塗、輪島塗の商品も売っております。 また朝市もやっており、自宅でも能登の海の幸を食べたいという方にもおすすめです。 料理 料理については2食(夕、朝)付いていおりました。 311号室はお部屋での食事になります。 夕食の内容は下の写真の通りです。 松茸(後から追加)、お刺身、アワビ、お肉等があり、味については言うまでもな以下とは思いますがおいしいです。 朝食は下の写真になります。 味が良いのはもちろんですが、火をつける際にはマッチを使う、輪島塗の食器を使うといったこだわりを感じました。 以上が加賀屋に宿泊した際の感想になります。 以前の記事でも書きましたが、加賀屋さんは間違いなく毎年日本一の旅館候補に上がるほどのサービスを提供していると思います。 ご興味のある方はぜひ宿泊していただけたらと思います。 今回は以上です。ここまでお読みいただきありがとうございます。 それではまた。 リラ吉

【宿泊記】草津の老舗旅館「奈良屋」の温泉・部屋・食事を解説

皆様こんにちは。リラ吉です。 先日、草津温泉にある老舗旅館「奈良屋」に宿泊することができました。 今回の記事ではこの奈良屋さんに2人で宿泊した際の値段や景色等について書きたいと思います。 奈良屋とは 奈良屋産は草津バスターミナルから徒歩5分、湯畑からは徒歩1分ほどの場所にある旅館です。 建物は木造で趣を感じます。それもそのはず、創業は明治10年(1887年)、100年以上の歴史がある老舗です。 100年以上の歴史はありますが、しっかり掃除・手入れがされており、建物の中は非常にきれいな印象です。 また、草津観光の起点となる湯畑のすぐそばなので、立地も非常に良い旅館です。 温泉 源泉:白旗源泉効能:神経痛/リュウマチ/胃腸/痔/婦人病/子宝/糖尿病/病後回復/ストレス解消/筋肉痛/神経痛/美肌作用/皮膚病泉質:酸性・含硫黄-アルミニウム-硫酸塩・塩化物温泉 草津には草津温泉には、湯畑、白旗、西の河原、地蔵、煮川、万代鉱の6つの源泉がありますが、奈良屋さんで使用している源泉は白旗源泉です。 白旗源泉は1193年8月3日に源頼朝が発見し入浴したと言われている草津の源泉で一番古いものになります。 草津の源泉の中では少し白濁したのが特徴です。 効果は「恋の病以外なんでも治せる」と言われています。もちろん実際には何でも治せるわけはありませんが、神経痛、筋肉痛、関節痛、五十肩といった、筋肉や関節、神経系の痛みを和らげる効果があります。 実体験としては、私はデスクワークのせいで首・肩・腰が痛むことがよくあります。旅行の際も痛みはあったのですが、温泉に入った直後に痛みは消えました。 しかし、また仕事中に痛みが出てきたので、治すというより一時的に痛みを和らげる効果があるように思えます。根本的に治すには日々のストレッチ、トレーニング等が必要であるというのが私の意見です。 また美容・美肌にも効果はありますが、皮膚の弱い方の長時間の入浴は肌に悪い影響が出る可能性がありますので注意が必要です。 草津温泉のphは2前後で入ってみると他の温泉と比べて非常にピリピリします。よく聞く話では1円玉を草津温泉に入れておくと1週間ほどで溶けてしまうそうです。 そのような温泉なので肌の弱い方が長時間入浴すると少し肌が赤くなることがあります。 白旗源泉は草津温泉の中では肌に優しい方ですが、入られる方はご自身の体調・肌の状態を考えて入浴時間を決めると良いかと思います。 また奈良屋さんには貸切風呂がございます。一つは内湯、二つは半露天風呂になっております。 私は檜の半露天風呂に入浴しました。入ってすぐに休憩する部屋があり、その奥にシャワールーム、露天風呂がありました。 他のお客様がいない中でお風呂に入りたいという方にはオススメのプランになっているかと思います。 部屋 今回宿泊した部屋は標準客室、一番お安い部屋です。 広くはありませんが、畳の香りがするきれいな和室です。 標準客室のほかにコンフォートエリア、泉游亭というより広いお部屋があるフロアもございます。 泉游亭の中には半露天風呂付きのお部屋もあります。 食事 私達は食事処での夕食・朝食付きプランを予約しました。 その時の夕食は下の写真のようなメニューでした。 このメニュー表の特徴はぱっと見ではどのような料理なのかわからないところです。 料理名の下を見ると、その料理に入っているものが書いてあります。 このメニューの意味は料理名とその材料からどんな料理が来るのかいろいろと想像して待っていてほしいという思いからこのようにしているようです。メニューがクイズで運ばれてくる料理が答えとも取れます。 そして実際に運ばれてきた料理が下の写真です。 味が良いのはもちろんですが、一つ一つの料理にコンセプト(ウサギの月見をイメージした料理など)があり、そのコンセプトとメニュー表にある料理名の関連性を見て「なるほど!」と思うのが非常に楽しかったです。 また朝食は下の写真になります。 豪華な朝食で非常においしかったです。 以上が草津温泉にある老舗旅館「奈良屋」の紹介になります。 伝統があり、また立地もいいので非常におすすめのお宿ですのぜひ宿泊していただけたらと思います。 リラ吉

【プログラミング初心者向け】計算機アプリを作ってみよう Part5(ボタン作成編)

※この記事ではC#とWPFを使用してアプリを作成しております。MacOSではWPFを使用できませんので、その点はご了承ください。 皆様こんにちは。リラ吉です。 前回はTextBlockを作成しました。今回もUI部分(レイアウト)を作成していきます。 本記事ではボタンの作成を行います。 ボタンの作成 現在、プログラムは下の画像のようになっているかと思います。 50行目の</Viewbox>と53行目の</Grid>の間が空いていますが、ここに下記のコードを書きます。 <local:NumberButton x:Name="NumberBtn1" Grid.Column="0" Grid.Row="5" Number="1" Click="NumberBtn_Click" Margin="10,10" Style="{StaticResource CalcButton}" IsEnabled="{Binding IsEnableButton}"> ...

【プログラミング初心者向け】計算機アプリを作ってみよう Part4(TextBlock作成編)

※この記事ではC#とWPFを使用してアプリを作成しております。MacOSではWPFを使用できませんので、その点はご了承ください。 皆様こんにちは。リラ吉です。 前回は計算機アプリのスタイルを作成しました。今回もUI部分(レイアウト)を作成していきます。 本記事では式、数字を表示するTextBlockの作成を行います。 TextBlockの作成 まずはTextBlockを作っていきます。TextBlockとは文字を表示するところです。 TextBlockを作るのはエクセルで作った画面イメージの下図の矢印の場所です。 余談ではありますが、WPFにはTextBlockのように文字を表示するTextBoxというのもあります。 厳密にはフォントの設定等の違いもありますが、この2つの一番の違いは TextBlock:入力した文字、数字等を編集不可TextBox:入力した文字、数字等を編集可能 となっています。 今回作成する電卓は編集する必要はありませんのでTextBlockを使用します。 ではTextBlockを作っていきましょう。今回は下のコードを使います。 最初の3行が式を表示する1つ目のTextBlock、4行目が空白で、5行目以降が数字を表示する2つ目のTextBlockを作るためのコードです。 <Viewbox Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Right"> <TextBlock Text="{Binding FormoulaText}" Margin="0,0,20,0"/> </Viewbox> <TextBlock Grid.Row="1" Grid.ColumnSpan="4" Background="#ffffff"/> <Viewbox Grid.Row="1" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="0,0,20,0"> ...
PVアクセスランキング にほんブログ村

返事を書く

Please enter your comment!
Please enter your name here

最新記事

【宿泊記】加賀屋の能登渚亭311号室の部屋、食事を解説

皆様こんにちは。リラ吉です。 昨年、日本一と言われている旅館「加賀屋」に宿泊しましたが、先日露天風呂付の別のお部屋に宿泊できました。 今回の記事では加賀屋さんの「能登渚亭・温泉露天風呂付き和洋室 311号室」について書きたいと思います。 加賀屋について 加賀屋とはまず加賀屋ですが、石川県七尾市の和倉温泉にある温泉旅館です。 「プロが選ぶ日本のホテル・旅館100選」(全国の旅館業者の中から選定)の総合部門1位を36年連続を受賞したことから「日本一の旅館」と言われています。 アクセスアクセス方法は車、高速バス、和倉温泉駅(JR七尾線・のと鉄道七尾線)から徒歩25分、バスで12分(バス10分、バスを降りてから徒歩2-3分)、タクシーで5分、駅からの送迎になります。 送迎は12時からとなっておりますので、早めに来て荷物だけ預けさせていただいて観光をしたいという方は和倉温泉駅からバス、タクシーで行くのが良いかと思います。 部屋 部屋は大きく分けて下記の5種類があります。 浜離宮雪月花能登渚亭能登客殿能登本陣 浜離宮が最高ランクで次が雪月花になります。 喫煙室と禁煙室がありますので、宿泊の際はどちらを希望するのか伝えたほうがいいかと思います。 能登渚亭311号室 私たちが宿泊したのは能登渚亭にある311号室になります。 311号室の詳細はは下の映像を見ていただけたらと思います(音が出ますのでご注意ください)。 映像の通り、温泉露天風呂付、フィットネスバイク付、デスク付き、LG Styler(クリーニング機)付の広めのお部屋です。段差が一切ないのも特徴です。 このタイプのお部屋は311号室しかなく、特別なお部屋になっています。 非常に快適なお部屋ですが、欠点を挙げるのであれば「海が見えない」ということです。 お部屋が海側にないため、海を見ながら食事をする、露天風呂に入る等ができません。海側にこだわる場合は海に面しているお部屋をお勧めします。 その他だと和室で食事ができないのも欠点と感じる方がいらっしゃるかもしれません。昨年宿泊したお部屋は和室で座椅子に座って食べましたが、311号室はテーブルでの食事になります。 施設 施設については売店については一つの小さな商店街なのではないかというくらい多くの店があります。お菓子などのお土産や加賀谷さんの入浴剤や浴衣も購入できますし、九谷焼、山中塗、輪島塗の商品も売っております。 また朝市もやっており、自宅でも能登の海の幸を食べたいという方にもおすすめです。 料理 料理については2食(夕、朝)付いていおりました。 311号室はお部屋での食事になります。 夕食の内容は下の写真の通りです。 松茸(後から追加)、お刺身、アワビ、お肉等があり、味については言うまでもな以下とは思いますがおいしいです。 朝食は下の写真になります。 味が良いのはもちろんですが、火をつける際にはマッチを使う、輪島塗の食器を使うといったこだわりを感じました。 以上が加賀屋に宿泊した際の感想になります。 以前の記事でも書きましたが、加賀屋さんは間違いなく毎年日本一の旅館候補に上がるほどのサービスを提供していると思います。 ご興味のある方はぜひ宿泊していただけたらと思います。 今回は以上です。ここまでお読みいただきありがとうございます。 それではまた。 リラ吉

【宿泊記】草津の老舗旅館「奈良屋」の温泉・部屋・食事を解説

皆様こんにちは。リラ吉です。 先日、草津温泉にある老舗旅館「奈良屋」に宿泊することができました。 今回の記事ではこの奈良屋さんに2人で宿泊した際の値段や景色等について書きたいと思います。 奈良屋とは 奈良屋産は草津バスターミナルから徒歩5分、湯畑からは徒歩1分ほどの場所にある旅館です。 建物は木造で趣を感じます。それもそのはず、創業は明治10年(1887年)、100年以上の歴史がある老舗です。 100年以上の歴史はありますが、しっかり掃除・手入れがされており、建物の中は非常にきれいな印象です。 また、草津観光の起点となる湯畑のすぐそばなので、立地も非常に良い旅館です。 温泉 源泉:白旗源泉効能:神経痛/リュウマチ/胃腸/痔/婦人病/子宝/糖尿病/病後回復/ストレス解消/筋肉痛/神経痛/美肌作用/皮膚病泉質:酸性・含硫黄-アルミニウム-硫酸塩・塩化物温泉 草津には草津温泉には、湯畑、白旗、西の河原、地蔵、煮川、万代鉱の6つの源泉がありますが、奈良屋さんで使用している源泉は白旗源泉です。 白旗源泉は1193年8月3日に源頼朝が発見し入浴したと言われている草津の源泉で一番古いものになります。 草津の源泉の中では少し白濁したのが特徴です。 効果は「恋の病以外なんでも治せる」と言われています。もちろん実際には何でも治せるわけはありませんが、神経痛、筋肉痛、関節痛、五十肩といった、筋肉や関節、神経系の痛みを和らげる効果があります。 実体験としては、私はデスクワークのせいで首・肩・腰が痛むことがよくあります。旅行の際も痛みはあったのですが、温泉に入った直後に痛みは消えました。 しかし、また仕事中に痛みが出てきたので、治すというより一時的に痛みを和らげる効果があるように思えます。根本的に治すには日々のストレッチ、トレーニング等が必要であるというのが私の意見です。 また美容・美肌にも効果はありますが、皮膚の弱い方の長時間の入浴は肌に悪い影響が出る可能性がありますので注意が必要です。 草津温泉のphは2前後で入ってみると他の温泉と比べて非常にピリピリします。よく聞く話では1円玉を草津温泉に入れておくと1週間ほどで溶けてしまうそうです。 そのような温泉なので肌の弱い方が長時間入浴すると少し肌が赤くなることがあります。 白旗源泉は草津温泉の中では肌に優しい方ですが、入られる方はご自身の体調・肌の状態を考えて入浴時間を決めると良いかと思います。 また奈良屋さんには貸切風呂がございます。一つは内湯、二つは半露天風呂になっております。 私は檜の半露天風呂に入浴しました。入ってすぐに休憩する部屋があり、その奥にシャワールーム、露天風呂がありました。 他のお客様がいない中でお風呂に入りたいという方にはオススメのプランになっているかと思います。 部屋 今回宿泊した部屋は標準客室、一番お安い部屋です。 広くはありませんが、畳の香りがするきれいな和室です。 標準客室のほかにコンフォートエリア、泉游亭というより広いお部屋があるフロアもございます。 泉游亭の中には半露天風呂付きのお部屋もあります。 食事 私達は食事処での夕食・朝食付きプランを予約しました。 その時の夕食は下の写真のようなメニューでした。 このメニュー表の特徴はぱっと見ではどのような料理なのかわからないところです。 料理名の下を見ると、その料理に入っているものが書いてあります。 このメニューの意味は料理名とその材料からどんな料理が来るのかいろいろと想像して待っていてほしいという思いからこのようにしているようです。メニューがクイズで運ばれてくる料理が答えとも取れます。 そして実際に運ばれてきた料理が下の写真です。 味が良いのはもちろんですが、一つ一つの料理にコンセプト(ウサギの月見をイメージした料理など)があり、そのコンセプトとメニュー表にある料理名の関連性を見て「なるほど!」と思うのが非常に楽しかったです。 また朝食は下の写真になります。 豪華な朝食で非常においしかったです。 以上が草津温泉にある老舗旅館「奈良屋」の紹介になります。 伝統があり、また立地もいいので非常におすすめのお宿ですのぜひ宿泊していただけたらと思います。 リラ吉

【プログラミング初心者向け】計算機アプリを作ってみよう Part5(ボタン作成編)

※この記事ではC#とWPFを使用してアプリを作成しております。MacOSではWPFを使用できませんので、その点はご了承ください。 皆様こんにちは。リラ吉です。 前回はTextBlockを作成しました。今回もUI部分(レイアウト)を作成していきます。 本記事ではボタンの作成を行います。 ボタンの作成 現在、プログラムは下の画像のようになっているかと思います。 50行目の</Viewbox>と53行目の</Grid>の間が空いていますが、ここに下記のコードを書きます。 <local:NumberButton x:Name="NumberBtn1" Grid.Column="0" Grid.Row="5" Number="1" Click="NumberBtn_Click" Margin="10,10" Style="{StaticResource CalcButton}" IsEnabled="{Binding IsEnableButton}"> ...

【プログラミング初心者向け】計算機アプリを作ってみよう Part4(TextBlock作成編)

※この記事ではC#とWPFを使用してアプリを作成しております。MacOSではWPFを使用できませんので、その点はご了承ください。 皆様こんにちは。リラ吉です。 前回は計算機アプリのスタイルを作成しました。今回もUI部分(レイアウト)を作成していきます。 本記事では式、数字を表示するTextBlockの作成を行います。 TextBlockの作成 まずはTextBlockを作っていきます。TextBlockとは文字を表示するところです。 TextBlockを作るのはエクセルで作った画面イメージの下図の矢印の場所です。 余談ではありますが、WPFにはTextBlockのように文字を表示するTextBoxというのもあります。 厳密にはフォントの設定等の違いもありますが、この2つの一番の違いは TextBlock:入力した文字、数字等を編集不可TextBox:入力した文字、数字等を編集可能 となっています。 今回作成する電卓は編集する必要はありませんのでTextBlockを使用します。 ではTextBlockを作っていきましょう。今回は下のコードを使います。 最初の3行が式を表示する1つ目のTextBlock、4行目が空白で、5行目以降が数字を表示する2つ目のTextBlockを作るためのコードです。 <Viewbox Grid.Row="0" Grid.ColumnSpan="4" HorizontalAlignment="Right"> <TextBlock Text="{Binding FormoulaText}" Margin="0,0,20,0"/> </Viewbox> <TextBlock Grid.Row="1" Grid.ColumnSpan="4" Background="#ffffff"/> <Viewbox Grid.Row="1" Grid.ColumnSpan="4" HorizontalAlignment="Right" Margin="0,0,20,0"> ...

【書籍紹介】「一流の頭脳」

皆様こんにちは。リラ吉です。 現代社会において、うつ病などの精神疾患、寿命が延びたことによる認知症の増加は非常に大きな問題になっております。 私自身、仕事で悩み、休職を経験したこともありました。 今回の記事ではそんな精神疾患やうつ病の対策について書かれたスウェーデンの精神科医であるアンダース・ハンセンさん著書「一流の頭脳」についてご紹介します。 本書のポイント 本書に書かれている重要なポイントは下記の5つです。 たとえわずかだったとしても運動をすると集中力の向上、ストレス解消に効果がある習慣的な運動は副作用のないうつ病の「特効薬」にもなる年齢を重ねるごとに脳は縮小していきますが、適度な運動をすることでそれを食い止めることができる運動は脳の海馬や前頭葉の発達を促す運動が脳にとって重要なのは人類の進化が関係している 上記ポイントの最初の3つは運動による効果、4つ目、5つ目はその理由になりますが1~4つ目のポイントはよく聞く話だと思います。 本書で一番面白いと思えるのは5つ目のポイントです。 私たち人間の進化の歴史を見ると約1万年前に農耕を始めました。約200年前に産業革命。そしてここ数十年でネットが普及という歴史になっています。 この歴史で見ると活動量は少なくとも半分に減りましたが、脳そのものは約1万年前からほとんど変わっていないというのが著者の意見です。 人類に限らず、生物は何万年もの年月をかけて緩やかに進化します。では生活様式はというとここ数十年で生物の進化のスピードをはるかにしのぐ速さで変わりました。 この生活様式の変化に脳も身体も追いつけていない状態である、また私たちの脳も身体も1万年前とそこまでかわっていないことから、当時の生活(=活動量が多い生活)に適した作りであり、最大のパフォーマンスを発揮するには適度な活動、つまり運動が必要だというのが著者の意見です。 そのような経緯から、「脳は適度な身体的負荷の下で最高のパフォーマンスをする」「変わらない脳が、速いスピードで変化する生活習慣に適応できず、様々な精神疾患が発生している」と著者は考えています。 感想 多くの方が「運動をすると集中力が上がる」「ストレス解消になる」と言っておりますが、その理由を人類の歴史から考えているのは非常に面白く感じました。 もちろん「運動が脳に良いのは人類の歴史のほとんどで体を動かしていたから」「様々な精神疾患が発生しているのは変化する生活習慣に適応できていないから」という意見が100%正しいかはわかりません。 ただ一つの意見としては参考になりますし、なにより運動をしようという気持ちにさせてくれる本かと思います。 今回の記事では紹介しませんでしたが、本書には効果の高い運動法についても書かれていますので、気になる方がいらっしゃいましたらぜひ購入していただけたらと思います。 それではまた。 リラ吉 一流の頭脳 価格:1760円(税込、送料無料) (2022/7/29時点)楽天で購入