Когда я создаю пользовательский элемент управления в WPF и добавляю его в окно, я не вижу ничего там, где я разместил его в диалоговом окне. Вот что я делаю:
Вот как выглядит код.
CustomButton.cs:
public class CustomButton : Button
{
static CustomButton()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomButton),
new FrameworkPropertyMetadata(typeof(CustomButton)));
}
}
MainWindow.xaml:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" xmlns:my="clr-namespace:WpfApplication1">
<Grid>
<my:CustomButton Content="Hello World" x:Name="customButton1"
HorizontalAlignment="Left" VerticalAlignment="Top" Margin="150,175,0,0" />
</Grid>
</Window>
Generic.xaml:
<Style TargetType="{x:Type local:CustomButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomButton}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Я нашел две подсказки относительно того, что происходит, но пока ничего не произошло. Когда я добавил настраиваемый элемент управления, Visual Studio добавила Themes / Generic.xaml, но независимо от того, что я пробую там, я не вижу разницы на экране. Другое дело, что если я закомментирую статический конструктор в CustomButton.cs, внезапно кнопка появится в главном окне. Однако это выглядит не во всех ситуациях (например, если я использую кнопку на панели инструментов).