2ページありますmainpage.xamlからlogin.pagexamlに移動する必要がありますが、スローされます オブジェクト参照がオブジェクトインスタンスに設定されていません。 Root.Children.Clear(); ...で.
私はこのコードをApp.xamlに追加しました:
private void Application_Startup(object sender, StartupEventArgs e)
{
Grid myGrid = new Grid();
myGrid.Children.Add(new MainPage());
this.RootVisual = myGrid;
}
そして、メイン.xamlにいくつかのコードを追加してLoginUI.xamlに移動します
namespace Gen.CallCenter.UI
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
Grid Root = ((Grid)(this.Parent));
Root.Children.Clear();
Root.Children.Add(new LoginUI());
}
}
}
Main.xamlをLoginUI.xamlに移動するにはどうすればよいですか?
のように AnthonyWJones ナビゲーションフレームワークを使用する必要があると述べました。
まず、プロジェクトにSystem.Windows.Controls.Navigation
への参照を追加し、MainPage.xamlで参照する必要があります。
xmlns:navigation="clr-namespace:System.Windows.Controls;Assembly=System.Windows.Controls.Navigation"
次に、さまざまなXAMLページを切り替えるフレームが必要になります。このようなもの:
<navigation:Frame x:Name="navFrame" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Source=”/Views/First.xaml” />
MainPage.xamlのどこかに、タグ付きのボタンを配置できます。
<Button Click="Button_Click" Tag="/Views/Second.xaml" Content="Second" />
Button_Click
イベントハンドラーでは、navFrame
に表示されるコンテンツを切り替えることができます。
private void Button_Click(object sender, RoutedEventArgs e)
{
Button theButton = sender as Button;
string url = theButton.Tag.ToString();
this.navFrame.Navigate(new Uri(url, UriKind.Relative));
}
注意すべきクールな点は、NavigationFrameworkを使用すると、ブラウザーの戻るボタンと進むボタンが完全に機能し、現在表示しているXAMLページに応じてアドレスバーのURLが更新されることです:)
MainPage.xaml
を表示しているときに、newPage.xaml
のButton
またはImageEdit
をクリックして、MainPage.xaml
という別のxamlページを開きたいとします。 、MainPage.xaml.cs
内に記述する必要のある簡単な解決策は次のとおりです。
private void imageEdit1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
newPage mynewPage = new newPage(); //newPage is the name of the newPage.xaml file
this.Content = mynewPage;
}
これは私と一緒に働いています。
間違った足で始めたようです。この種のものは、ナビゲーションアプリケーションテンプレートを使用するために用意されています。新しいプロジェクトを開始し、「Silverlightナビゲーションアプリケーション」を選択する必要があります。
ロードしたら、それを実行して、基本的なシェルがどのように見えるかを確認します。次に、MainPageがどのように構成されているかを見て、ホームビューと言います。ナビゲーションPage
タイプに基づいて新しいビューを作成し、それらをMainPage.xamlに追加する必要があります。
この問題を解決する簡単な方法は、次のWebサイトを参照してください: http://blogs.Microsoft.co.il/blogs/eladkatz/archive/2011/01/25/adapting-silverlight-navigation-to -mvvm.aspx 。
私は以前にこの問題を抱えていました。しかし、このチュートリアルを読んだ後は、MVVMを使用して別のビューに簡単に移動できます。これがあなた方全員が問題を解決するのを助けることができることを願っています。Thx
private void formcombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
foreach (ComboBoxItem child in formcombobox.Items)
{
if (child.Name != null && child.IsSelected == true)
{
string url = new System.Uri("/DWRWefForm;component/Pages/"
+ child.Name + ".xaml", System.UriKind.Relative).ToString();
this.navframe.Navigate(new Uri(url, UriKind.Relative));
}
}
}
これを試して:
private void imageEdit1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
newPage mynewPage = new newPage(); //newPage is the name of the newPage.xaml file
this.Content = mynewPage;
}
それは私のために働いています。 :)