2011-10-26 28 views
0

私はSLを使い始めています。Silverlight 4ユーザーコントロールが表示されない

私はそうのような非常に単純なユーザーコントロールを作成しました: - 次のように

<UserControl x:Class="Company.UI.Common.Controls.TestControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="400"> 

    <Grid x:Name="LayoutRoot" Background="Yellow" Width="100" Height="20"> 
     <TextBlock Text="foo"></TextBlock> 
    </Grid> 
</UserControl> 

が続いて私の見解で、私はそれを参照しています: -

xmlns:medControls="clr-namespace:Company.UI.Common.Controls;assembly=Company.UI.Common" 

は、次にUIのように、それを含みますこの: - 私は、ちょうど空スペース100x20ピクセルのアプリを実行したときに

<medControls:TestControl Width="100" Height="20" Visibility="Visible" /> 

は、しかし何も表示されませんコントロールが必要です。私はSilverlight Spyを使用しており、コントロール、存在するすべての正確な詳細 - タイプ、アセンブリ、可視性などを表示します。 私はユーザーコントロールのコンストラクタにブレークポイントを設定し、InitializeComponent()が呼び出されていることを確認できます。

何が起こっているかについてのご意見は、私が非常に簡単なことでなければならないものの上に私の髪を引き裂いているので、非常に高く評価されるでしょう!このことができます場合は、事前 で

おかげでアンディ

+0

あなたのユーザーコントロールは問題ありません。ホストしているビューに問題があると思われます。完全なコードを表示する必要があります –

答えて

1

これはVS2010での既知のバグであることが判明したユーザーコントロールを呼び出し、ここに報告:http://connect.microsoft.com/VisualStudio/feedback/details/683175/visual-studio-failing-to-embed-g-resources-file-in-dll-with-certain-silverlight-project-files

基本的には、いくつかの状況では、.csprojファイル内の要素の順序を変更することができ、その結果アセンブリに含まれていないXAMLファイルで、これが私にとって起こっていることです。実行時エラーはありません。何もない。ユーザーコントロールが描画されるはずの空のスペース。

上記のリンクは、問題の解決に必要なことを示しています。手動で.csprojファイルを編集し、特定の要素を移動します。

ちなみに、この同じバグは、私のユーザーコントロールのコードビハインドがコントロールを参照していた別の問題(「this.txtForename」など)の原因でもありました。 FindName()を使用してInitializeComponentで設定されたコントロール参照は、常にnullでした。

これは他の人に役立つことを願っています。

アンドリュー

0

参照:

http://msdn.microsoft.com/en-us/library/system.windows.controls.usercontrol%28v=vs.95%29.aspx

http://10rem.net/blog/2010/02/05/creating-customized-usercontrols-deriving-from-contentcontrol-in-wpf-4

を私は常にプログラム的にそれをやったXAMLでカスタムユーザーコントロールを作成しようとしたことはありません、あなたが持っていますこの例では見ることができますが、1つを使用するとそれを取り除くことができますContentControlまたは1つのContentPresenter、その後はあなたが