1

WP アプリのカスタム ベース ページを作成しようとしています。次のように継承する新しいcsクラスファイルを作成することで、これを行っています。PhoneApplicationPage

public class BasePage: PhoneApplicationPage
{
   //handle common non-visual stuff here
} 

問題は、使用するすべてのページにコントロールを追加したいのですがBasePage、BasePage にはLayoutRoot、コントロールをアタッチできる視覚要素がないか、まったくないことです。BasePage を使用するすべてのページに同じコントロールを追加して、毎回コピー/貼り付けする必要がないようにする方法はありますか?

編集: TriggerPin の回答に基づいて XAML を追加します。私は自分用に新しい XAML ファイルを作成しましたBasePage.csが、これはエラーをスローしBasePage.g.csています:

<local:BasePage
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:MyApp.Template"
    x:Class="MyApp.MainPage"
    mc:Ignorable="d">
4

2 に答える 2

2

デフォルトでは、PhoneApplicationPage から派生した型は部分的であることに注意してください。

 public partial class MainPage : PhoneApplicationPage

部分定義を使用すると、クラス定義を複数のファイルに分割できます。このタイプで最も一般的なのは、定義が .cs ファイルと .xaml ファイルに分割されていることです。

 <phone:PhoneApplicationPage x:Class="MyProject.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone">

     <!-- Custom layout here -->

 </phone:PhoneApplicationPage>

実装を部分クラスにして、ベースとなる xaml コードを提供すると、目的を達成できるようになります。

于 2013-02-15T18:45:29.113 に答える
0

子コントロールを追加するには、少なくとも Panel タイプでなければならないコンテナが必要です。ページは、UIElement を直接追加できない単なる UserControl です。

これを試して:

Panel container = // init it from your page, you must have a root element in page.
container.Children.Add(new TextBlock()); // your children control.

Win8でやりました。

于 2014-05-06T10:17:45.090 に答える