Est-ce que quelqu'un a réussi à incorporer un Silverlight ControlTemplate dans une application F # Silverlight? J'essaie d'ajouter des transitions à l'élément Navgiation.Frame et de suivre avec un exemple C#: http://www.davidpoll.com/2009/07/19/silverlight-3-navigation-adding-transitions-to-the-frame-controlSilverlight ControlTemplate et F #
La source téléchargée utilise l'option MSBUILD: Compiler sur le modèle XAML et le fichier est inclus en tant que «Page». .. ILDASM n'affiche aucun objet créé pour le XAML;
Dans mon projet, j'incldued comme une « ressource » (comme je l'ai fait pour mes pages) et référencées dans app.xaml:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Module1.MyApp">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/FSSilverlightApp;component/TransitioningFrame.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
le TransitioningFrame.xaml est la suivante:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Layout.Toolkit">
<ControlTemplate x:Key="TransitioningFrame" TargetType="navigation:Frame">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<toolkit:TransitioningContentControl Content="{TemplateBinding Content}"
Cursor="{TemplateBinding Cursor}"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Transition="DefaultTransition" />
</Border>
</ControlTemplate>
</ResourceDictionary>
Ma page d'objets charger tous leurs XAML respectifs avec le code follwoing:
type Page1() as this =
inherit UriUserControl("/FSSilverlightApp;component/Page1.xaml")
do
Application.LoadComponent(this, base.uri)
et somew ici app démarrage:
let p1 = new Page1()
Je DONOT une pièce comparable pour le ControlTemplate - bien que j'espérais l'objet d'application et App.xaml tirerais dans magie (en aparté, le recours à cette magie a mis en place une application 100% f # silverlight plutôt difficile - comme presque tous les articles publiés que je trouve sont basés sur des magiciens et des raccourcis - très peu sur la plomberie acual - ugh).
la XAML page fait référence à la commande via:
<StackPanel Grid.Row="3" Grid.Column="2" Name="mainPanel">
<navigation:Frame Name="contentFrame" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Template="{StaticResource TransitioningFrame}"/>
</StackPanel>
Tout conseil ou thougts sur le sujet sont appréciés.
Par brians commentaire, j'ai étudié les diagnostics de commande MSBuild et il ne ressemble pas à n'anythining autre que l'inclure comme une ressource:
Génération fichier .resources: « obj \ Debug \ TransitioningNavigation.g.resources '... (TaskId: 14) Lecture du fichier de ressources: ' C: \ Users \ todd.brown \ Desktop \ TransitioningNavigation \ TransitioningNavigation \ Assets \ Styles.xaml '... (TaskId : 14) L'ID de ressource est 'assets/styles.xaml'. (TaskId: 14)
Lecture du fichier de ressources: 'C: \ Users \ todd.brown \ Desktop \ TransitioningNavigation \ TransitioningNavigation \ Assets \ TransitioningFrame.xaml' ... (TaskId: 14) ID de ressource est « actifs/transitioningframe.xaml '. (TaskId: 14)
Eh bien une chose intéressante est que si je renomme la référence au inide xaml ContentTemplate du App.xaml - l'application charge deosn't et renvoie une erreur - donc je suppose que la page est référencée et chargée correctement.à-dire cela est mauvais
<ResourceDictionary Source="/FSSilverlightApp;component/TransitioningFrameBAD.xaml"/>
pas au courant de cette fonctionnalité ... bonne -thx suggestion. Bien que je me demande si l'interface utilisateur devrait coder la transition à la main ou quelle est la technique préférée. On dirait que le jsut de TransitioningContentControl envoie environ trois transitions gratuitement. et aucun d'eux ne semble trop complexe. – akaphenom