web-dev-qa-db-ja.com

Xamarinフォームラベルに境界線を追加する方法は?

Xamarin Formsユーザーの皆さん、こんにちは。

Xamarin Fromsでは、ラベルの境界線はそのままではサポートされていないことが既にわかっています。そのため、いくつかの検索の後、それを可能にする方法がまだわかりません。カスタムレンダラーを使用して境界線を追加することはできますか?もしそうなら、誰かが例を持っていますか?そうでない場合、誰かがこれを可能にする他の独創的なアイデアを持っています。

前もって感謝します

7
Diceble

私は箱から出して少し考えて、ボーダーとして使用するためにボックスビューを使用することを思いつきました。ここに、私が書いたコードのサンプルがあります:

  <StackLayout x:Name="BasicInfo" Margin="10,10,10,5" Grid.Row="0" Grid.Column="0">
    <Label Text="Basic Info" FontSize="20"/>
    <BoxView Color="Black" WidthRequest ="100" HeightRequest="1"/>
     <Label x:Name="text1" />
     <Label x:Name="text2"/>
     <Label x:Name="text3"/>
     <Label x:Name="text4"/>  
  </StackLayout>

また、結果の画像を追加します: enter image description here

8
Diceble

Frame要素内にLabelを追加し、FrameのOutlineColorをセットアップできます。

<Frame OutlineColor="Black">
    <Label Text="My Label With Frame" />
</Frame>

カスタムレンダラーを使用する場合は、サポートする各プラットフォーム(つまり、Android、iOS、UWP、WinPhone)にカスタムレンダラーを実装する必要があります。

16
kb0

すでに答えがありますが、私が見つけた解決策では、具体的に表示したい境界線とその量を選択できます。

私が使用した修正は、ContentViewで境界線を必要とする要素をラップし、そのContentViewにbackgroundColourとパディングを与えることでした。コードは以下です

次のスタイルが宣言されたリソース辞書

<Style TargetType="ContentView"
       x:Key="BorderContentView">
    <Setter Property="BackgroundColor"
            Value="Black" />
    <Setter Property="Padding"
            Value="1 2 1 3" />
    <!-- Tweak the values above to set your borders however you prefer -->
</Style>

ビューで、ラッピングContentViewを追加し、それにスタイルを追加するだけです

<ContentView Style="{DynamicResource BorderContentView}">
    <!-- Elements with a border here --> 
</ContentView>
1
Cas Nouwens

BoxView内にラベルを配置し、BoxViewのborderプロパティを宣言します。