我正在开发Windows 8(C#)中的类库,我需要在其中显示用户输入的UI。如何在类库中创建UI并调用它。请帮忙。
现在我从类库中调用Popup来显示所需的UI,但是我发现弹出窗口是从库中打开的,但是它隐藏在另一个UI元素下面(在我的例子中是Webview)。请参考下面的代码片段。 / p>
类库代码
namespace PopUpLibrary
{
public class PopupDialog
{
public void ShowPopup()
{
Popup popup = new Popup();
popup.HorizontalAlignment = HorizontalAlignment.Center;
popup.VerticalAlignment = VerticalAlignment.Center;
popup.Height = 500;
popup.Width = 700;
Button button = new Button();
button.Content = "adfadfad";
button.Width = 200;
button.Height = 100;
popup.Child = button;
popup.IsOpen = true;
}
}
}
申请代码:
MainPage.xaml
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<WebView Name="webview" ></WebView>
</Grid>
MainPage.xaml.cs中
public MainPage()
{
this.InitializeComponent();
webview.Navigate(new Uri("http://www.google.com"));
PopupDialog popupdialog = new PopupDialog();
popupdialog.ShowPopup();
}
答案 0 :(得分:0)
什么样的输入?是/否或字符串输入?
对于是/否,您可以使用标准MessageDialog。如果您需要接收自定义输入,例如文本,则可以使用CustomDialog工具包中提供的Callisto控件。
答案 1 :(得分:0)
您无法在WebView上显示其他控件。但是,您可以通过暂时隐藏WebView并显示WebViewBrush来解决此问题。
WebView的特征是其他UI区域(如控件)无法在WebView上呈现。这是因为内部处理窗口区域的方式,特别是如何处理输入事件以及屏幕绘制方式。如果要呈现HTML内容并将其他UI元素放在该HTML内容之上,则应使用WebViewBrush作为渲染区域。 WebView仍然提供HTML源信息,并通过SourceName属性引用该WebView。 WebViewBrush没有此覆盖限制。
如果要显示仅偶尔具有重叠内容的交互式WebView(例如下拉列表或应用栏),则可以在必要时临时隐藏WebView控件,使用WebViewBrush填充替换为元素。然后,当重叠内容不再存在时,您可以再次显示原始WebView。有关详细信息,请参阅WebView control sample。