Я хочу создать настраиваемый шаблон элемента управления (в библиотеке / отдельной сборке) и запустить диалоговое окно / окно сообщений на основе этого шаблона настраиваемого элемента управления, не требуя отдельного клиентского XAML на основе этого шаблона настраиваемого элемента управления.
Шаблон управления разработан следующим образом ...
Класс шаблона управления
public class DialogWindow : Window
{
#region Constructors
static DialogWindow()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(DialogWindow),
new FrameworkPropertyMetadata(typeof(DialogWindow)));
}
public DialogWindow()
{
}
public DialogWindow(string title, string header, string message)
{
Title = title;
HeaderText = header;
MessageText = message;
}
///...
///the rest of the custom control class
///...
Стиль шаблона управления
<Style TargetType="{x:Type customcontrols:DialogWindow}">
<Setter Property="WindowStyle" Value="None" />
<Setter Property="AllowsTransparency" Value="True" />
<Setter Property="ResizeMode" Value="NoResize"/>
...
<!-- the rest of the control template-->
...
</Style>
в клиентском приложении, я хочу использовать шаблон управления как.Очень похоже на объявление типа MessageBox, но полностью разработано с нуля.
Код клиента
CustomControls.DialogWindow custom = new CustomControls.DialogWindow("Sample Title", "Sample Header",
Properties.Resources.DocumentResourceSample);
custom.IsOKEnabled = true;
custom.OKButtonClick += CloseDialog;
custom.ShowDialog();
Полная ошибка, которую я получаю при попытке запустить диалоговое окно:
Ошибка: невозможно изменить AllowsTransparencyпосле того, как было показано окно или вызван WindowInteropHelper.EnsureHandle.
Я действительно хочу установить прозрачность AllowsTransparency через стиль шаблона пользовательского элемента управления, в противном случае появляется толстая черная граница.
Что вы, ребята, думаете, мне здесь не хватает?