0

私がやろうとしているのは、Silverlight を使用して xna でポップアップを作成することですが、「system.windows.media.color」と「Microsoft.xna.framework.color」の参照にあいまいさがあるというエラーがスローされます。これに対する解決策はありますか...もしあれば、提案は非常に役立ちます。

編集:

OKそれはうまくいきましたが、別の問題があります。「要素はすでに別の要素の子です」というエラーが表示されます....誰か助けてもらえますか? 「myStackPanel.Children.Add(txtNameEntry);」に到達すると、エラーがスローされます。ライン...

  Border border = new Border();
                    border.BorderBrush = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.White);
                    border.BorderThickness = new Thickness(10);

                    StackPanel myStackPanel = new StackPanel();
                    myStackPanel.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black);

                    //Textblock containing the name you input and its properties.
                    //txtNameEntry.Text = Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceName").ToString();
                    txtNameEntry.Text = "Player 1";
                    txtNameEntry.Width = 350;
                    txtNameEntry.Height = 100;
                    txtNameEntry.MaxLength = 10;
                    txtNameEntry.FontFamily = new System.Windows.Media.FontFamily("Comis Sans MS");
                    txtNameEntry.FontSize = 48.0;
                    //txtNameEntry.Foreground = new System.Windows.Media.FontFamily(Colors.Orange);
                    txtNameEntry.Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Orange);
                    txtNameEntry.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.LightGray);
                    txtNameEntry.BorderBrush = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.LightGray);

                    //The ok button, which then allows you to procede into the game.
                    Button btnNameEntryOK = new Button();
                    btnNameEntryOK.Content = "Ok";
                    btnNameEntryOK.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Orange);
                    btnNameEntryOK.FontFamily = new System.Windows.Media.FontFamily("Comic Sans Ms");
                    btnNameEntryOK.FontSize = 25.0;
                    btnNameEntryOK.Width = 180;
                    btnNameEntryOK.Height = 70;
                    btnNameEntryOK.Click += new RoutedEventHandler(btnNameEntryOK_Click);
                    btnNameEntryOK.Margin = new Thickness(10);

                    //Place these in the order you want them to be renderd to the screen.
                    myStackPanel.Children.Add(txtNameEntry);
                    myStackPanel.Children.Add(btnNameEntryOK);
                    border.Child = myStackPanel;
                    nameEntry.Child = border;

                    //set screen position of pop up 
                    nameEntry.VerticalOffset = 100.0;
                    nameEntry.HorizontalOffset = 50.0;

                    //open pop up
                    nameEntry.IsOpen = true;

XAML:

  <phone:PhoneApplicationPage 
    x:Class="MazeEscapePhoneSilveright.GamePage"
    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"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    mc:Ignorable="d" d:DesignHeight="800" d:DesignWidth="480"
    shell:SystemTray.IsVisible="False">

    <!--No XAML content is required as the page is rendered entirely with the XNA Framework-->
</phone:PhoneApplicationPage>
4

1 に答える 1

1

usingディレクティブを介した名前空間のインポートが原因であいまいな場合は、適切なColorオブジェクトに必要に応じて完全な名前空間を使用できます。

投稿していないため、コードのメンバーに正確に使用する必要があるものはわかりませんが、使用するだけではなく、次のように使用しColorます。

Microsoft.Xna.Framework.Color.YOUR_MEMBER_CALL

また

System.Windows.Media.Color.YOUR_MEMBER_CALL

using Microsoft.Xna.Framework;または、ファイルの先頭からまたはusing System.Windows.Media;ディレクティブを削除することもできます。最も適切なもの。ただし、削除された名前空間で使用していた他の型は、名前を修飾するために完全な (または部分的な) 名前空間を含めるように更新する必要があります。

最後のオプションの 1 つは、名前空間エイリアスを指定できることです。たとえば、Silverlight カラーの特別な呼び出しが必要な場合は、ファイルの先頭に次のように追加できます。

using SilverlightMedia = System.Windows.Media;

その後、コードの後半で次のことができます。

var myColor = SilverlightMedia.Color.FromArgb(255, 255, 255, 255);
于 2013-06-26T13:10:00.437 に答える