1
我正在創建一個WPF窗口,其中包含文本框。但是,當我以調試模式(F5)運行項目時,我無法編輯我創建的文本框,也無法從我創建的列表框中進行選擇。我用Google搜索,發現WPF和Win32需要溝通,能接受鍵盤輸入,並得到了這3行:在WPF中創建的文本框在運行時不可編輯
Window w = new Window1();
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(w);
w.Show();
不過,我是新來的C#,所以我完全不知道該往哪兒插此C#代碼。我將System.Windows.Forms和WindowsFormIntegration引用添加到我的項目中。
我正在設計的窗口將成爲應用程序啓動時出現的第一個窗口,因此我需要此窗口中的文本框可編輯,而無需啓動另一個窗口。請引導我。
編輯:這是我的XAML代碼:
<Window x:Name="Window1" x:Class="Myproject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Risk Assessment"
Height="741" Width="1216.091">
<GroupBox x:Name="GroupBox1">
<Grid>
<TextBox x:Name="Length" IsReadOnly ="False" IsEnabled="True" />
</Grid>
</GroupBox>
</Window>
這是我的C#代碼:
namespace Myproject
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
編輯2:我修改的第一行中的App.xaml這樣的代碼:
<Application x:Class="Myproject.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
而在App.Xaml.cs我加入這個片段:
private void Application_Startup(object sender, StartupEventArgs e)
{
MainWindow win = new MainWindow();
ElementHost.EnableModelessKeyboardInterop(win);
win.Show();
System.Windows.Threading.Dispatcher.Run();
}
但仍然沒有運氣。我哪裏錯了?
我看到這裏沒有文本框。你想用ElementHost做什麼? –
我有我的文本框的XAML代碼。當我搜索互聯網時,它提供的所有內容都是上述3行代碼,以使WPF窗口能夠通過文本框接受文本輸入。但是,我不知道在哪裏添加這3行代碼。那是我希望能得到一些幫助的地方。 – Julyflowers
post Window1 XAML,你可以刪除第二行,如果你只是想創建一個WPF中的文本框的窗口 – ZSH