我正在尝试创建一个类似按钮的 UserControl,它由边框和标签组成。当直接在 MainWindow 的 XAML 中添加这个 UserControl 时,它会正确呈现(它放在 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。我已经尝试查找有关此的信息,但我没有找到任何东西。如果您有其他我可以采取的方法,请提出建议。我想要的只是一个可点击的区域,带有一些可以包含文本(一行或多行)的圆角。
我可以以编程方式应用样式,但不会保留在 xaml 中为 UserControl 定义的样式(边框、边距、颜色等)。