境界線とラベルで構成されるボタンのような UserControl を作成しようとしています。この UserControl を MainWindow の XAML に直接追加すると、正しくレンダリングされます (WrapPanel に配置されます) が、プログラムで追加するとまったく同じに見えません。境界線も背景色もありません。ラベルのテキスト サイズが間違っていて、テキストの色も間違っています。
これは私のユーザーコントロールです:
<UserControl x:Class="Jishi.SonosPartyMode.UserControls.Player"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="150" d:DesignWidth="300"
Width="200"
Height="100">
<Border BorderBrush="#086EAA" CornerRadius="8,8,8,8" BorderThickness="4" Margin="15" Padding="15px" VerticalAlignment="Center" Background="#0A4069">
<Label Name="PlayerName" TextElement.Foreground="White" TextElement.FontSize="20px">asdasdasd</Label>
</Border>
</UserControl>
追加するときは、次のように呼び出します。
var button = new Player { Content = player.Properties.RoomName, DataContext = player.Properties.UDN };
PlayerList.Children.Add( button );
PlayerList は実際の WrapPanel であり、Player は私の UserControl です。これに関する情報を見つけようとしましたが、何も見つかりません。私にできる別のアプローチがある場合は、提案をお願いします。私が欲しいのは、テキスト (1 つまたは複数の行) を含むことができるいくつかの丸い角を持つクリック可能な領域です。
プログラムでスタイルを適用できますが、UserControl の xaml で定義されたスタイルは保持されません (境界線、余白、色など)。