2010-04-20 10 views
5

In un progetto Silverlight 4 ho una classe che si estende su tela:Perché non Silverlight di gestire la conversione della mia proprietà float personalizzato

public class AppendageCanvas : Canvas 
{   
    public float Friction { get; set; } 
    public float Restitution { get; set; } 
    public float Density { get; set; } 
} 

Io uso questa tela in Blend trascinandola su un altro controllo e regolazione le proprietà personalizzate:

alt text http://www.farseergames.com/storage/share/PropertyInBlend.Png

quando eseguo l'applicazione, ottengo il seguente errore quando InitializeComponent viene chiamato sul controllo che contiene la mia tela su misura:

Failed to create a 'Windows.Foundation.Single' from the text '0.0' 

alt text http://www.farseergames.com/storage/share/SilverlightError.Png

io non sono sicuro perché Silverlight non è in grado di convertire questo immobile da esso di rappresentazione di stringa in XAML, al galleggiante che è.

Qualcuno ha qualche idea?

risposta

5

Il sottoargomento Native Text Syntaxes elenca i tipi che Xaml conosce in modo nativo come convertire. Fondamentalmente i tipi primitivi supportati sono double, int, bool e string.

0

ricevuto questo da Twitter amico Cameron Albert:

Questo è strano, mi chiedo se fallirebbe se questo è stato un doppio?

Passa al doppio e non c'è più errore. Ancora curioso che i galleggianti non funzionino.

+0

Prima domanda, se si aggiunge il proprio convertitore di tipo o convertitore di valore, è possibile memorizzare il valore? Potrebbe non esserci un convertitore singolo/float per impostazione predefinita. –

+0

Secondo, internamente in Silverlight per motivi di prestazioni, molti doppi hanno una precisione singola e di conseguenza questo può essere un artefatto di ciò. –

Problemi correlati