UserControlを作り、xamlに配置すると例外が出る
受付中
回答 1
投稿
- 評価
- クリップ 0
- VIEW 7,793
こんにちは。
Windows10でWPFのアプリケーションを開発しています。
Visual Studio 2015 Communityを使っています。
前提・実現したいこと
WPFでUserControlを使いたいです。トラブルなしで。
試したこと
UserControlを作り、xamlに配置しました。
発生している問題・エラーメッセージ
例外がスローされました。
NullReferenceException: オブジェクト参照がオブジェクトインスタンスに設定されていません。
StackTrace
InnerException:なし
該当のソースコード
<!--8-1-2-->
<UserControl x:Class="UserControls.MyUserControl.HeaderUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:UserControlsHeaderUserControl"
mc:Ignorable="d"
d:DesignHeight="29" d:DesignWidth="400">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="67*"/>
<ColumnDefinition Width="22*"/>
<ColumnDefinition Width="72*"/>
<ColumnDefinition Width="50*"/>
<ColumnDefinition Width="89*"/>
</Grid.ColumnDefinitions>
<!--1列目-->
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="29" x:Name="HeaderRowA"/>
</Grid.RowDefinitions>
<Border BorderBrush="DarkGray" BorderThickness="1">
<TextBox x:Name="HeaderTextA" Grid.Row="0" TextWrapping="WrapWithOverflow"
HorizontalAlignment="Center" VerticalAlignment="Center" x:FieldModifier="public"
BorderBrush="Transparent">名称</TextBox>
</Border>
</Grid>
<!--2列目-->
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="29" x:Name="HeaderRowB"/>
<RowDefinition Height="99*"/>
</Grid.RowDefinitions>
<Border BorderBrush="DarkGray" BorderThickness="1">
<TextBox x:Name="HeaderTextB" Grid.Row="0" TextWrapping="WrapWithOverflow"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="8" x:FieldModifier="public" BorderBrush="Transparent">材質</TextBox>
</Border>
</Grid>
<!--3列目-->
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="29" x:Name="HeaderRowC"/>
</Grid.RowDefinitions>
<Border BorderBrush="DarkGray" BorderThickness="1" Grid.Row="0" >
<TextBox x:Name="HeaderTextC" TextWrapping="WrapWithOverflow"
HorizontalAlignment="Center" VerticalAlignment="Center"
x:FieldModifier="public" BorderBrush="Transparent">特徴</TextBox>
</Border>
</Grid>
<!--4列目-->
<Grid Grid.Column="3">
<Grid.RowDefinitions>
<RowDefinition Height="29" x:Name="HeaderRowD"/>
</Grid.RowDefinitions>
<Border BorderBrush="DarkGray" BorderThickness="1" Grid.Row="0" >
<TextBox x:Name="HeaderTextD" TextWrapping="WrapWithOverflow"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontSize="12" x:FieldModifier="public" BorderBrush="Transparent">種類</TextBox>
</Border>
</Grid>
<!--5列目-->
<Grid Grid.Column="4">
<Grid.RowDefinitions>
<RowDefinition Height="29" x:Name="HeaderRowE"/>
</Grid.RowDefinitions>
<Border BorderBrush="DarkGray" BorderThickness="1" Grid.Row="0" >
<TextBox x:Name="HeaderTextE" TextWrapping="WrapWithOverflow"
HorizontalAlignment="Center" VerticalAlignment="Center"
x:FieldModifier="public" BorderBrush="Transparent">説明</TextBox>
</Border>
</Grid>
</Grid>
</UserControl>
<Grid>
<UserControl:HeaderUserControl x:Name="headerUC"/>
</Grid>
VerticalAlignment="Bottom"/>-->
補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2015
Version 14.0.25424.00 Update 3
Microsoft .NET Framework
Version 4.6.01038
インストールしているバージョン:Community
Visual C# 2015 00322-20000-00000-AA575
Microsoft Visual C# 2015
です。
よろしくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+1
Microsoft Visual Studio Community 2015が無いため、
Microsoft Visual Studio Professional 2012、
Microsoft Visual Studio Community 2017で試しましたが、
以下の手順では、エラーになりませんでした。
<UserControl x:Class="UserControls.MyUserControl.HeaderUserControl"
を参考に、
- 「UserControls」というWPFプロジェクトを作成。
- プロジェクト内に「MyUserControl」というフォルダを作成。
- MyUserControlフォルダ内に「HeaderUserControl」というユーザコントロールを作成。
- HeaderUserControl.xamlに添付のソースをコピー。
- 一度、ビルド。
- 以下がエラーとなるため、削除し再ビルド。
xmlns:local="clr-namespace:UserControlsHeaderUserControl"
- MainWindow.xamlに以下貼り付け。
- 警告が出るため、インポートを追加。
- 実行
提示されていない箇所でのエラーでは?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.09%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2017/03/21 12:20
他の箇所をコメントアウトしてもエラーは消えず、この行をコメントアウトするとエラーがなくなるので、他の箇所ではないと思います。
もう2017community出たのですね!
今日帰ったら入れてみます。
2017/03/21 17:13
NullReferenceExceptionのスタックトレースは、どこを指しているのでしょう?
...まさか、デザイナーでNullReferenceExceptionが発生するわけが!?
と、思ってググってみました。
検索ワード:visual studio xaml デザイナ nullref
VS2015でXAMLデザイナーがSystem.NullReferenceExceptionになる
ttp://mag.autumn.org/Content.modf?id=20150828114018
では無いですよね。
2017/03/21 17:58
で、環境変数見てみましたが、Platformは見当たらなかったです。