konto usunięte

Temat: Strona w Silverlight

Mam nadzieje, ze o to chodzilo:

    
<UserControl x:Class="SilverlightApplication1.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<UserControl.Resources>
<Style TargetType="TextBlock" x:Name="StylB" x:Key="StylBKey">
<Setter Property="Foreground" Value="Red"></Setter>
</Style>

<Style TargetType="ListBox" x:Key="StylA">
<Setter Property="Background" Value="Blue"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" Style="{StaticResource StylBKey}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>

<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="myLB"
Style="{StaticResource StylA}"
ItemsSource="{Binding}">
</ListBox>
</Grid>
</UserControl>


No jeszcze mala klaska dla jasnosci:

public class Person
{
private String _name;

public String Name
{
get
{
return _name;
}
}

public Person()
{
_name = String.Empty;
}

public Person(String name)
: this()
{
_name = name;
}
}


No to potem jescze tylko w konstruktorze Page'a:


public partial class Page : UserControl
{
private ObservableCollection<Person> _personList;

public Page()
{
InitializeComponent();

_personList = new ObservableCollection<Person>()
{
new Person("Adam"), new Person("Wiola"), new Person("Ziutek")
};

DataContext = _personList;
}
}


Wiem, ze wkleilem troche nadmiarowo, ale ten konkretny kod dziala. Mozesz sobie po prostu skopiowac do projektu i kombinowac.

Have fun! ;)Karol Sotomski edytował(a) ten post dnia 14.04.09 o godzinie 18:00
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Strona w Silverlight

Karol Sotomski:
Mam nadzieje, ze o to chodzilo:

Tak dokładnie o to mi chodziło. Dzięki ;)
PS: Dziwne robiłem wcześniej "dokładnie tak samo" ale mi nie wychodziło - błędem mi sypał, a że robiłem na czują stwierdziłem, że nie da się korzystać z resource'ów w resourc'ach i zrezygnowałem. Ale jednak można dzięki.
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Strona w Silverlight

OK. to pociągnę jeszcze temat resource’ów. Czy można zmieniać zapisane w nich wartości. O co mi chodzi:
Chciałbym ustawić sobie w resource’ach np.: główny kolor czcionki dla całej strony. Przed inicjalizacją strony chciałbym ustawić ten kolor na podstawie wartości odczytanej z bazy danych.
I drugie pytanie jak rozwiązać kwestię wielkości czcionek – tzn. chciałbym zrobić mechanizm pozwalający user’owi zmienić wielkość czcionki, nie wiem jednak jak to jakoś sprytnie zrobić.

konto usunięte

Temat: Strona w Silverlight

Co do resource'ow - tak, da sie. dobierasz sie do strumienia z resourcami, rzutujesz na odpowiedni typ i mozesz szalec.
Tu uwaga - nie wiem czy te dane beda zapamietane przy kolejnym ustawieniu programu.
Inne rozwiazanie - Application settings (znane od dawien dawna rozwiazanie umozliwiajace zapamietywanie roznych ustawien aplikacji .net)

Czcionka.
Temat rzeka i dobre rozwiazanie zalezy od konkretnego zastosowania.
Przykladowy prosty scenariusz:
1. Tworze slider, za pomoca ktorego user bedzie modyfikowal wielkosc czcionki
2. Zaprzyjazniam sie z Attached Property o nazwie TextElement.FontSize (i ogolnie z idea Attached Property).
3. Wiaze Value slidera z TextElement.FontSize kontenera, ktorego elementom chce zmieniac wielkosc czcionki.

Przyklad:


<Grid TextElement.FontSize="{Binding ElementName=SomeSlider, Path=Value}"> //Czy jakos tak ;)
<TextBlock Text="Popatrz, mam wielkosc czcionki ze slidera!" />
</Grid>


I znowu uwaga - jakkolwiek sama idea jest na pewno dobra, to powyzszy kod pisalem z palaca (i co gorsza, z pamieci), wiec prawie na pewno wymaga niewielkich poprawek;)

Hope it helps! ;)
Norbert M.

Norbert M. Nobody's perfect.
Call me Nobody ;)

Temat: Strona w Silverlight

Karol Sotomski:
Co do resource'ow - tak, da sie. dobierasz sie do strumienia z resourcami, rzutujesz na odpowiedni typ i mozesz szalec.
A możesz jakiś prosty przykład podesłać, jak to zrobić??

Następna dyskusja:

Silverlight




Wyślij zaproszenie do