dědičnost v .xaml

Vývoj aplikací v Silverlightu
Odpovědět
bujnmi
nováček
nováček
Příspěvky: 12
Registrován: úte kvě 08, 2012 11:47
Zařízení: lumia 800

dědičnost v .xaml

Příspěvek od bujnmi »

Jaký je postup, pokud potřebuju definovat dědičnost v xaml.

Konkrétně mám třídu Ptak, která dědí z UserControl

Kód: Vybrat vše

public class ptak : UserControl
{
public StoryBoard mavanikridly;
//...
}
Mám tu několik druhů ptáků, jež jsou původně definovaní v UserControl.
... položka mavanikridly je animace definovaná v xaml kazdeho ptáka

Kód: Vybrat vše


public partial class chocholacControl : ptak
	{
		public chocholacControl()
		{
			
			InitializeComponent();
                        base.mavanikridly = this.mavanikridly;
                        //...
            
		}
        
	}

Kód: Vybrat vše


<ptak:UserControl
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
	mc:Ignorable="d"
    xmlns:ptak="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	x:Class="WindowsPhoneApplication1.chocholacControl" UseLayoutRounding="False" Height="50.078" Width="98.333">

    <ptak:UserControl.Resources>
           <Storyboard x:Name="mavanikridly" RepeatBehavior="Forever" AutoReverse="True">.......................</Storyboard>
   </ptak:UserControl.Resources>

      ..............................................//definice ptaka (canvasy, pathy)

</ptak:UserControl>
Zde potřebuji radu: jak mám v xamlu napsat, že chocholacControl dědí od třídy ptak a ne od třídy UserControl? Pokusil jsem se o to, ale v současné podobě se program odmítá spustit. Říká, že chocholacControl dědí od UserControl, což nechci.
Igor Kulman
častý přispěvatel
častý přispěvatel
Příspěvky: 228
Registrován: stř bře 28, 2012 12:46
Zařízení: ano

dědičnost v .xaml

Příspěvek od Igor Kulman »

Podľa mňa to nie je možné. Budeš musieť vytvárať storyboard v kóde, ak to chceš cez dedičnosť. Odporúčal by som však namiesto dedičnosti použiť kompozíciu a jednotlivé storyboardy môžeš mať asi definované v XAML a načítať ich za behu. Pozri si Loading XAML at runtime?
bujnmi
nováček
nováček
Příspěvky: 12
Registrován: úte kvě 08, 2012 11:47
Zařízení: lumia 800

dědičnost v .xaml

Příspěvek od bujnmi »

Možné to je, ale je k tomu zapotřebí přepsat v souboru chocholacControl.g.i.cs (vzniká při buildu) dědičnou třídu na ptak. Tento postup mi ale nepřijde moc fajn.
Vytvořit ten storyboard v kodu by byl ten nejmenší problém, ale mám tu kvanta dalších dat.
Kompozici ale nerozumím a v tomto projektu už to mám dělané přes dědičnost, takže pokud teda není způsob na vyjádření dědičnosti v xaml, tak budu nucen přepisovat.
Odpovědět

Zpět na „Silverlight“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 20 hostů