dポイントプレゼントキャンペーン実施中!

どなたか知恵をお貸しください...(C#,xamlともに初心者です)

現在、WPFにて受信したデータを表示するテスト用UIを作成しています。画面レイアウトとその処理については完成しておりまして、
最後にリソースディクショナリを使ってのちょっと変わったボタンを(というかデザインとして)
つけようとしていました。
ネットでソースなどをコピペしつつで、リソースディクショナリは完成し、
既存のMainWindow.xamlに反映させるためにUserControlを作成しました。
一通り完成した後にソリューションエクスプローラlを確認すると、警告マークとともに
「新しいソースコードを生成した場合はビルドし直してください」と記載されていたため
その通りにやってしまったところ、上記エラーが出るようになってしまいました。(警告マーク等は一切でなくなっています)
調べたところ、「別の場所のプロジェクトをビルドし直すと、古い場所に対する完全信頼のアクセス許可は削除されます」との記載を見つけたため、
恐らくプロパティ内かApp.configに何か起こってしまったのではと考えているのですが...

どなたか解決の糸口をご教授願います。
(使用しているのはvisualstudio2012です。)

今回のエラーにつながったと思われるリソースディクショナリと
UserContolを下に載せます。(httpのhはyahooのurl認識防止のため消してあります)

リソースディクショナリ(ErrorLamp.xaml)
<ResourceDictionary xmlns="ttp://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="ttp://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="TextBrush" Color="White" />
<Style x:Key="ErrorLamp" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="{StaticResource TextBrush}" />

<ControlTemplate TargetType="Button">
<Grid>
省略
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>



以下はUseControl1.xaml
<UserControl x:Class="AAAProject.UserControl1"
xmlns="ttp://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="ttp://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="ttp://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="ttp://schemas.microsoft.com/expression/blend/2008" >
<UserControl.Resources>
...
<ResourceDictionary Source="ErrorLamp.xaml"/>
...
</UserControl.Resources>
<Button Style="{StaticResource ErrorLamp}"
x:Name="redLamp"
/>
</UserControl>

ちなみにUserControl.xaml.csはなにもいじっていません。
MainWindow.xamlの編集した部分はこうなっていました。
<...
xmlns:uc="clr-namespace:AAAProject"
...>
<Grid>
<custom:RedLamp x:Name="redLamp" />
</Grid>


TypeInitializationExceptionの内容は以下です。


TypeInitializationExceptionはハンドルされませんでした。
'System.Windows.Application'のタイプ初期化子が例外をスローしました。
呼び出し履歴
PresentationFramework.dll!System.Windows.Application.Application()
AAAProject.exe!AAAProject.App.App()
AAAProject.exe!AAAProject.App.Main()
[ネイティブからマネージへの移行]
[マネージからネイティブへの移行]
...
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart()
[ネイティブからマネージへの移行]

思いつく情報はこのくらいかと思います。よろしくお願いします。

質問者からの補足コメント

  • どう思う?

    エラーの詳細を見つけました。
    どうやらApp.configに問題がありそうですが、どこが問題の点なのかがいまいちわかりません
    ...
    Message=config ファイルにつき 1 つの <configSections> 要素のみが許可されます。要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。
    (C: ... .exe.config line 7)
    Source=System.Configuration
    BareMessage=config ファイルにつき 1 つの <configSections> 要素のみが許可されます。要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。
    ...

    文字数の問題上、次の補足でApp.configを載せます。

      補足日時:2015/12/16 11:15
  • どう思う?

    App.configのソース一部

    <?xml ...>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <configSections>
    <section name= ... />
    <sectionGroup name= ...>
    <section name="AAAProject.Properties.Settings" type="System.Configuration.ClientSettingsSection, ... />
    ...

    恐らくここらへんに問題があるのではと思います。
    文字数の都合上、数か所省いておりますが
    もし必要だと思われる場合は言ってください。

      補足日時:2015/12/16 11:21
  • うーん・・・

    回答ありがとうございます。
    App.configのソースが中途半端で申し訳ありません。

    引用-
    config ファイルにつき 1 つの <configSections> 要素のみが許可されます。
    -
    についてですが、現状でもApp.configにはひとつしか<configSections>を使っていない状況なので、どう修正すればいいか困っております。

    App.configソース-

    <?xml ..>
    <configuration>
    ..
    <configSections>
    <section name... />
    <sectionGroup name=... >
    <section name.../>
    </sectionGroup>
    </configSections>

    ...

    </configuration>

    とここだけです。
    どうして2つ以上あると捉えられてるのでしょう。。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/12/16 13:31

A 回答 (1件)

とりあえずそのメッセージに従ってみてはどうだろうか.

この回答への補足あり
    • good
    • 0
この回答へのお礼

早速ですが解決できました。
引用-
要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。
-
こちらを見落としていました...
<configuration>のつぎに<configSections>ではなく、<startup> があったためでした。

エラーが発生したソース
<?xml ...>
<configuration>
<startup>
...
</startup>
<configSections>
...
</configSections>

</configuration>

以下正常なソース
<?xml ...>
<configuration>
<configSections>
...
</configSections>
<startup>
...
</startup>

</configuration>

順番の問題という非常に単純な内容でした...お騒がせしてすみません。
再確認の種が実となりました。ありがとうございました。

お礼日時:2015/12/16 13:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!