2009-08-07 2 views
0

カスタムスプラッシュ画面にSilverlight ProgressBarコントロールを埋め込む方法を教えてください。私は(簡潔にするために簡略化)緩いXAMLに次のように置く:SilverlightのProgressBarカスタムスプラッシュ画面

<Grid xmlns="http://schemas.microsoft.com/client/2007" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
     <ProgressBar /> 
</Grid> 

を次のようにエラーメッセージがある: エラー:Silverlightアプリケーションで未処理のエラー コード:2007
カテゴリー:ParserError
メッセージ:不明な要素: プログレスバー。
など

http://schemas.microsoft.com/winfx/2006/xaml/presentation名前空間で定義された標準制御プログレスバーはありませんか?

答えて

0

私はSL2またはSL3と仮定しています。プログレスバーが存在してからSL2に追加されています。

/winfx/2006/xaml /プレゼンテーションの名前空間は宣言されていませんが、確かに存在するSL2/3では宣言されていません。代替http://schemas.microsoft.com/client/2007を使用しました。これはSL1.0の従来のネームスペースです

このコードは機能しますが、再現するためにはユーザーコントロールとしてルート要素を持たなければなりません。ユーザコントロールタグ自体は認識されません。

<UserControl x:Class="myApp.scratchpad" 
    xmlns="http://schemas.microsoft.com/client/2007" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <ProgressBar /> 
    </Grid> 
</UserControl> 

SL3で正常に動作しました。

さらに多くのページ、ルート要素を投稿し、SL2/3名前空間への参照を更新し、SLのどのバージョンが使用されているかを伝えることができますか?これは、オブジェクトタグのSplashScreenSourceプロパティに対するものである場合

+0

がルートでユーザーコントロールにそれを置くことは、それが動作するように得るために鍵となりました。私はあなたの例を貼り付け、それはうまくいった。 – t3rse

0

、その後、XAMLは、Silverlightでなければならない1 + JavaScriptの(非管理XAML)ここでは、それを行うだろうかです:

(シルバーSDK hereから撮影)その後、
<Canvas Background="Black" Width="302" Height="52"> 
    <Rectangle Canvas.Left="1" Canvas.Top="1" Width="300" Height="30" Fill="White"/> 
    <Rectangle x:Name="progressBarFill" Canvas.Left="1" Canvas.Top="1" Height="30" Fill="Blue"/> 
</Canvas> 

と進捗状況を更新するために、JS関数を使用します。

function onProgressChanged(sender, eventArgs) 
{ 
    var slPlugin = sender.getHost(); 
    slPlugin.content.findName("progressBarFill").width = eventArgs.progress * 300; 
} 
関連する問題