Xamarin Formsユーザーの皆さん、こんにちは。
Xamarin Fromsでは、ラベルの境界線はそのままではサポートされていないことが既にわかっています。そのため、いくつかの検索の後、それを可能にする方法がまだわかりません。カスタムレンダラーを使用して境界線を追加することはできますか?もしそうなら、誰かが例を持っていますか?そうでない場合、誰かがこれを可能にする他の独創的なアイデアを持っています。
前もって感謝します
私は箱から出して少し考えて、ボーダーとして使用するためにボックスビューを使用することを思いつきました。ここに、私が書いたコードのサンプルがあります:
<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>
Frame要素内にLabelを追加し、FrameのOutlineColorをセットアップできます。
<Frame OutlineColor="Black">
<Label Text="My Label With Frame" />
</Frame>
カスタムレンダラーを使用する場合は、サポートする各プラットフォーム(つまり、Android、iOS、UWP、WinPhone)にカスタムレンダラーを実装する必要があります。
すでに答えがありますが、私が見つけた解決策では、具体的に表示したい境界線とその量を選択できます。
私が使用した修正は、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>
BoxView内にラベルを配置し、BoxViewのborderプロパティを宣言します。