アイキャッチ画像

.NET MAUIの様々なコントローラに下線を引く方法について

.NET MAUIで様々なコントローラに下線を引く方法を紹介していきます。

紹介環境

当記事は以下の環境で作成しています。

開発環境

  • Visual Studio 2022
  • .Net 8

下線を引く方法について

下線を引くには BoxView を利用していきます。利用してみた例と見た目は以下のようになります。

<VerticalStackLayout>
    <Label
        Text="BoxViewで下線が引けます" />
    <BoxView
        Color="Red"
        HeightRequest="10" />
</VerticalStackLayout>
下線を引いたイメージ

各コントロールについて

VerticalStackLayout は、各コントロールの幅を広げて縦並びにすることができます。上から順番に並ぶため BoxView は下線を引きたいコントロールの後に配置します。

BoxView は、下線に利用しています。線の色はColorで、太さはHeightRequestで指定します。

ちなみに

下線が引きたいコントロールの下に BoxView を配置すればいいため、Grid でも以下のようにすることで下線が引けます。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <Label
        Grid.Row="0"
        Text="BoxViewで下線が引けます" />
    <BoxView
        Grid.Row="1"
        Color="Red"
        HeightRequest="10"/>
</Grid>

応用方法について

この方法は BoxView の配置場所やレイアウトを変更することで様々な形にできます。以下の例では、当サイトの見出しを表現してみました。

<HorizontalStackLayout
    Spacing="5">
    <BoxView
        Color="Red"
        WidthRequest="5" />
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <BoxView
            Grid.RowSpan="2"
            Grid.Column="0"
            Color="Gray"
            WidthRequest="3" />
        <Label
            Grid.Row="0"
            Grid.Column="1"
            Padding="7,0"
            Text="ここに対称のコントロールを配置します" />
        <BoxView
            Grid.Row="1"
            Grid.ColumnSpan="2"
            Color="Gray"
            HeightRequest="3" />
    </Grid>
</HorizontalStackLayout>
応用編のイメージ

おわりに

下線の引き方を紹介してみました。最初はBorderやStyleなどで考えており簡単にできると思っていました。いざ試してみると、なかなか上手くいかないので悩みました。分かれば簡単なのですが、意外とこの方法が思いつかなかったので紹介してみました。この記事が役に立てば幸いです。