我有一个UWP应用程序,当点击某些按钮时,我会动态显示ContentDialog。ContentDialog将包含markdown文本,该文本是根据单击的按钮从配置文件动态加载的。markdown文本还包含对图像的引用(仅供参考,这些图像的宽度为2480像素)
private async void ImageHelp_Tapped(object sender, TappedRoutedEventArgs e)
{
try
{
MarkdownTextBlock markdownTextBlock = new MarkdownTextBlock();
// BASED ON SENDER (button) IT WILL BE DIFFERENT
markdownTextBlock.Text = ReadMarkDownTextFromConfig(sender);
markdownTextBlock.Background = new SolidColorBrush(Colors.Transparent);
ScrollViewer sv = new ScrollViewer();
sv.HorizontalScrollMode = ScrollMode.Auto;
sv.VerticalScrollMode = ScrollMode.Enabled;
sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
sv.ZoomMode = ZoomMode.Enabled;
sv.Content = markdownTextBlock;
ContentDialog notifyDialog = new ContentDialog
{
Content = sv,
CloseButtonText = "Ok"
};
await notifyDialog.ShowAsync();
}
catch (Exception ex) { MessageDialog msg = new MessageDialog(ex.Message, "Error"); _ = msg.ShowAsync(); }
}
我想要的是,ContentDialog是可视化的“全宽”,我已经尝试设置ContentDialog的宽度,但没有多大帮助。我已经尝试了这个:
notifyDialog.MaxWidth = Window.Current.Bounds.Width;
还有这个
notifyDialog.Width = Window.Current.Bounds.Width;
即使我尝试了这些方法,ContentDialog的实际宽度也是Window宽度的一半,即使我将它设置为一个很大的数字,它也是一样的
2条答案
按热度按时间new9mtju1#
除了@Adam Mcmahon关于使用
Popup
的解决方案之外,另一种方法是更改ContentDialog
的默认MaxWidth。默认的ContentDialog
MaxWidth是584,这是在通用.xaml文件中设置的。要覆盖它,您需要像这样在App.xaml中添加它:o7jaxewo2#
如果您可以使用
Popup
而不是ContentDialog
,那么下面的代码应该可以满足您的需要。据我所知-你不能让一个
ContentDialog
比它的默认最大宽度更大。你可以创建一个自定义控件,但这是一个简单得多的解决方案,如果你可以与一个Popup
XAML语言
C#