如何解决如何在我自己的UWP应用中从Edge本机应用重新创建反馈窗口?
这是一个只有关闭按钮且大小固定的窗口。 我们如何从UWP应用(XAML和c#)创建相同的内容。 UWP API不允许固定窗口大小,甚至我们也不能从窗口标题栏中禁用最小化和最大化按钮
解决方法
UWP基于Page,它不同于Win32应用程序(它们通常由Form
或Window
组成)。根据您的需要,我建议您使用ContentDialog
控件,该控件可以模拟这样的反馈窗口并提供类似的体验。这是一个示例:
FeedbackDialog.xaml
<ContentDialog
...
Title="Send Feedback"
PrimaryButtonText="Send"
CloseButtonText="Cancel"
PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
SecondaryButtonClick="ContentDialog_SecondaryButtonClick">
<Grid MaxWidth="400">
<ScrollViewer HorizontalScrollMode="Disabled">
<StackPanel>
<TextBox Header="Describe what's happening" HorizontalAlignment="Stretch" AcceptsReturn="True"
MinHeight="160" PlaceholderText="Remember not to include personal info like phone numbers"
TextWrapping="Wrap" x:Name="DescribeTextBox"/>
<TextBox Header="URL" Margin="0,15,0" HorizontalAlignment="Stretch" TextWrapping="NoWrap"
x:Name="UrlTextBox"/>
<CheckBox Content="Include email address" Margin="0,0" x:Name="EmailEnabledCheckBox"/>
<TextBox IsEnabled="{Binding ElementName=EmailEnabledCheckBox,Path=IsChecked}" HorizontalAlignment="Stretch"
Margin="0,10,0" x:Name="EmailAddressTextBox"/>
<!-- other controls... -->
</StackPanel>
</ScrollViewer>
</Grid>
</ContentDialog>
如果我们有反馈按钮,我们可以像这样使用它
用法
private async void FeedbackButton_Click(object sender,RoutedEventArgs e)
{
var dialog = new FeedbackDialog();
await dialog.ShowAsync();
}
使用ContentDialog
创建表单是UWP的常见做法。对于较长的表单,可以在对话框不够高时添加ScrollViewer
来滚动内容。
其样式与您提供的Edge浏览器的样式有些不同,您可以在此基础上对其进行修改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。