0

Silverlight ProgressBar コントロールをカスタム スプラッシュ スクリーンに埋め込むにはどうすればよいですか? 以下をルース xaml に入れます (簡潔にするために簡略化しています)。

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

エラー メッセージは次のとおりです。 エラー: Silverlight アプリケーション コードの未処理エラー: 2007
カテゴリ: ParserError
メッセージ: 不明な要素: ProgressBar。

ProgressBar は、 http://schemas.microsoft.com/winfx/2006/xaml/presentation名前空間で定義されている標準コントロールではありませんか?

4

2 に答える 2

0

プログレスバーが存在するため、SL2またはSL3を想定しています。SL2に追加されました。

/ winfx / 2006 / xaml / presentation名前空間は宣言されていませんが、それが存在するSL2/3では確かに宣言されています。代替のhttp://schemas.microsoft.com/client/2007を使用しました。これは、SL1.0のレガシー名前空間です。

与えられたコードは機能しますが、再現するには、ルート要素をユーザーコントロールとして使用し、名前空間をそこに配置する必要があります。そうしないと、usercontrolタグ自体が認識されません。

<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のどのバージョンが使用されているかを言うことができますか?

于 2009-08-07T15:09:17.510 に答える
0

これが object タグの SplashScreenSource プロパティ用である場合、XAML は Silverlight 1+JavaScript (非マネージド XAML) である必要があります

<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;
}
于 2009-08-07T18:02:25.220 に答える