Я работаю над универсальной библиотекой классов, предназначенной для использования приложений UWP.
В этом я пытаюсь использовать Content Dialog, чтобы получить какой-либо пользовательский ввод.
Все хорошо работает в отладке, когда я упаковываю свою библиотеку как dll и распространяю, ContentDialog не отображается из приложения, которое ссылается на мою dll.
Я получаю Windows.UI.Xaml.Markup.XamlParseException: XAML parsing failed
исключение, я получил это через файл журнала.
Здесь мой код
ContentDialog
<ContentDialog
x:Class="xxxx.yyyy.InputContentDialogue"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="dialog"
Title="Title">
<ContentDialog.Resources>
<Style x:Name="ButtonStyleNoTabFocus" TargetType="Button">
<Setter Property="FocusVisualPrimaryBrush" Value="Transparent" />
<Setter Property="Margin" Value="5"/>
</Style>
</ContentDialog.Resources>
<!-- Content body -->
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="0,20" MinWidth="550">
<StackPanel Orientation="Vertical">
<TextBlock TextWrapping="WrapWholeWords" Margin="5,0,0,10">
shkgdsakjfdhgsajkfdhkasd sadkfjahsdkj asdfjasfdja asdkfjasdf asdkjfnas asdkjfnasd
</TextBlock>
<TextBlock Margin="5,0,0,10">sjkdhfkjsdf sdajfakjdsb sadfkajsdfa.
</TextBlock>
<StackPanel Orientation="Horizontal">
<Button TabIndex="0"
HorizontalAlignment="Center"
Content="hey there"
Style="{StaticResource ButtonStyleNoTabFocus}"
x:Name="btn1"
Click="btn1_Click"
GotFocus="Btn_GotFocus"
LostFocus="Btn_LostFocus"/>
<Button HorizontalAlignment="Center"
Content="Hi"
x:Name="btn2"
Style="{StaticResource ButtonStyleNoTabFocus}"
Click="btn2_Click"
GotFocus="Btn_GotFocus"
LostFocus="Btn_LostFocus"/>
<Button HorizontalAlignment="Center"
Content="Hello"
Style="{StaticResource ButtonStyleNoTabFocus}"
x:Name="btn3"
Click="btn3_Click"
GotFocus="Btn_GotFocus"
LostFocus="Btn_LostFocus"/>
</StackPanel>
</StackPanel>
</Grid>
ContentDialog.cs
public sealed partial class InputContentDialogue : ContentDialog
{
public UserConsentContentDialogue()
{
this.InitializeComponent();
this.Result = -1;
this.Closing += ContentDialogue_Closing;
}
private void ContentDialogue_Closing(ContentDialog sender, ContentDialogClosingEventArgs args)
{
if (args.Result == ContentDialogResult.None && this.Result == -1)
{
args.Cancel = true;
}
}
public int Result { get; set; }
// Handle the button clicks from dialog
private void btn1_Click(object sender, RoutedEventArgs e)
{
this.Result = 0;
// Close the dialog
dialog.Hide();
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
this.Result = 1;
// Close the dialog
dialog.Hide();
}
private void btn3_Click(object sender, RoutedEventArgs e)
{
this.Result = 2;
// Close the dialog
dialog.Hide();
}
private void Btn_GotFocus(object sender, RoutedEventArgs e)
{
Brush _blinkBrush = Application.Current.Resources["SystemControlHighlightAccentBrush"] as SolidColorBrush;
(sender as Button).BorderBrush = _blinkBrush;
}
private void Btn_LostFocus(object sender, RoutedEventArgs e)
{
(sender as Button).BorderBrush = new SolidColorBrush(Colors.Transparent);
}
}
И я создаю новый экземпляр и пытаюсь показать диалоговое окно, вот так
internal static async Task<int> ShowMyContentDialog()
{
try
{
InputContentDialogue dialogue = new InputContentDialogue();
await dialogue.ShowAsync();
return dialogue.Result;
}
catch(Exception e)
{
FileOperations.WriteToLogFile("ERROR occurred "+ e.ToString());
}
return -1;
}
Все работает хорошо, если я ссылаюсь на эту библиотеку в базе кода. Если я получаю релиз dll и ссылаюсь на него из тестового приложения, я получаю исключение xaml parse.
Может ли кто-нибудь помочь мне в этом.
Заранее спасибо.