2009-08-07 10 views
0

Wie einbettt das Silverlight ProgressBar Steuerelement in einem benutzerdefinierten Begrüßungsbildschirm? Ich habe folgendes in lose XAML (der Kürze halber vereinfacht):ProgressBar in Silverlight benutzerdefinierten Begrüßungsbildschirm

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

Die Fehlermeldung lautet wie folgt: Fehler: Nicht behandelte Fehler in Silverlight-Anwendung Code: 2007
Kategorie: ParserError
Nachricht: Unbekanntes Element : Fortschrittsanzeige.
etc

Ist das nicht der ProgressBar eine Standardsteuerung im Namespace http://schemas.microsoft.com/winfx/2006/xaml/presentation definiert?

Antwort

0

Ich nehme SL2 oder SL3 seit dem Vorhandensein eines Fortschrittsbalkens - es wurde in SL2 hinzugefügt.

Der/winfx/2006/xaml/Präsentation Name Raum ist nicht deklariert - aber sicherlich in SL2/3, wo es sich befindet. Sie verwendet haben, die alternative http://schemas.microsoft.com/client/2007, ist dies ein Vermächtnis Namespace für SL1.0

Der Code gegeben wird funktionieren, aber zu reproduzieren ich das Stammelement als Benutzer Kontrolle haben müssen und die Namensräumen haben in sich dort aufzuhalten, sonst Das Usercontrol-Tag selbst wird nicht erkannt.

<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> 

Arbeitete gut in SL3.

Können Sie mehr von der Seite, Root-Element, den Verweis auf den SL2/3-Namespace aktualisieren und auch sagen, welche Version von SL verwendet wird?

+0

es in einem Usercontrol an der Wurzel Einlochen wurde der Schlüssel, um es zu arbeiten. Ich habe dein Beispiel eingefügt und es hat gut funktioniert. – t3rse

0

Wenn dies für die SplashScreenSource Eigenschaft des Objekts Tag ist, dann muss der XAML-Silverlight sein 1 + JavaScript (nicht verwalteten XAML) Hier ist, wie Sie das tun würde: (Entnommen aus dem Silverlight 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> 

Und dann verwenden, um eine JS-Funktion, den Fortschritt zu aktualisieren:

function onProgressChanged(sender, eventArgs) 
{ 
    var slPlugin = sender.getHost(); 
    slPlugin.content.findName("progressBarFill").width = eventArgs.progress * 300; 
} 
Verwandte Themen