Carregando UserControl dinamicamente
Usando VSM em Silverlight
Usando VSM em Silverlight
O Visual State Manager chamado de VSM permite você habilitar facilmente o estado de qualquer UIElement tal como Button, Elipse, Retângulo ou até mesmo tudo que estiver dentro de um UserControl. Você deve estar se perguntando, o que é isso? Um exemplo bem simples: Você pode definir e executar um estado quando o mouse estiver sobre um botão e executar outro estado quando ele não está sobre o botão. Com VSM pode criar estados altamente sofisticados, é só usar a criatividade. E para facilitar ainda mais, nada melhor que usar o Microsoft Blend para criar os estados dos elementos, e com uma linha chamar o estado.
Neste tutorial eu irei mostrar o estado de uma elipse, é bem simples e prático. Depois que você aprender mais sobre VSM, que tal mostrar para nós suas habilidades.
Abraços
Flávia Moreira
Artigos e Vídeos sobre Silverlight
Artigos e Vídeos Sobre Silverlight -
2 Silverlight 4 Beta e seus recursos
3 Usando função JavaScript em Silverlight
4 Enviando e-mail com Silverlight – Parte II
5 Enviando e-mail com Silverlight – Parte I
6 Populando Datagrid usando LINQ TO SQL em Silverlight Parte II
7 Populando Datagrid usando LINQ TO SQL em Silverlight Parte I
8 Vídeo Player em Silverlight Visual Studio 2010 – Parte II
9 Primeira Aplicação em Silverlight Flávia Moreira
10 Vídeo Player em Silverlight – Visual Studio 2010 Parte I
11 Introdução ao Microsoft Blend 3
2 Acessando método C# pelo Javascript
3 Behavior Silverlight Administrator
4 Animação dinâmica em Silverlight
5 Vídeo aula- Aplicação em Silverlight
O ambiente Visual Studio .Net
No artigo Introdução ao C# foi abordado a ideia principal da plataforma .Net, a qual tem como objetivo possibilitar a integração de algumas linguagens em um único ambiente e facilitar o processo de desenvolvimento. Neste artigo será mostrado o ambiente Visual Studio .Net, para possibilitar a continuidade de outros artigos sobre C#.
O Visual Studio facilita o processo de desenvolvimento em vários aspectos, uma delas é a possibilidade de desenvolver uma parte do sistema em C#, e outra em VB.net e ainda publicar uma página em ASP. Usando o Visual Studio você não precisará mais trocar de ambiente, pois no Studio .Net você encontra todos os recursos para a criação, depuração, testes, execução e publicação de aplicativos desktop e web.
Abraços,
Flávia Moreira
Artigos e Vídeos em Silverlight
Olá pessoal.
Como eu estou mudando o meu blog para um site, então atualizei as informações.
Segue alguns artigos e vídeos sobre Silverlight.
Usando Javascript e Silverlight
http://www.dowhile.com.br/artigos/silverlight/63-usando-funcao-javascript-em-silverlight-.html
Usando e-mail e Webservice
http://www.dowhile.com.br/artigos/silverlight/60-enviando-e-mail-com-silverlight-parte-ii-.html
http://www.dowhile.com.br/artigos/silverlight/59-enviando-e-mail-com-silverlight-parte-i-.html
Usando linq to sql
vídeo
Usando Javascript e Silverlight
http://www.dowhile.com.br/videos/silverlight/64-acessando-metodo-csharp-pelo-javascript.html
Abraços
Flávia Moreira
Usando função JavaScript em Silverlight 3
Usando função JavaScript em Silverlight 3
Olá amigos mais um artigo!
Estou trabalhando duro
atualizando os artigos para Silverlight 3 e claro experimentando noVisual Studio 2010 Beta 2. Já funciona, não é lindo ?.
Então o endereço do link é:
Usando função JavaScript em Silverlight
abraços,
Flavia Moreira
Alguns artigos sobre silverlight
Olá amigos
Adicionei mais artigos no dowhile usando o Silverlight 3 com visual Studio 2010 Beta 2.
1 Populando Datagrid usando LINQ TO SQL em Silverlight Parte II
2 Populando Datagrid usando LINQ TO SQL em Silverlight Parte I
3 Vídeo Player em Silverlight Visual Studio 2010 – Parte II
4 Primeira Aplicação em Silverlight
5 Vídeo Player em Silverlight – Visual Studio 2010 Parte I
6 Introdução ao Microsoft Blend 3
Para acesso a todos estes conteúdos acessem:
abraços,
Flávia Moreira
Carregando Dll de um Usercontrol dinamicamente
Neste artigo será mostrado como carregar uma dll de usercontrol dinamicamente em Silverlight. Pois bem, o motivo que me inspirou a fazer este exemplo foi um amigo meu do MSN que insistiu para ajudá-lo a carregar animações dinâmicas vindo externamente. Além disso, percebi um big fator, às vezes podemos ter uma aplicação grande, e como sabemos, o Silverlight cria o arquivo XAP, que é um Zip disfarçado, e fazemos o download deste santo arquivo. Neste ponto, você pode imaginar que, se seu arquivo Xap for grande o usuário irá ficar extremamente zangado e desistir de ver sua aplicação, não é mesmo?. Então o que devemos fazer ?
Simplesmente devemos é quebrar nossa aplicação em partes, ou seja, criar class Library e usar algumas classes importantes para isso. Vamos ver então:
Passo 1.
Crie uma class Library, indo em VS: File -> New->Project. Em Project types escolha silverlight e em Templates Silverlight Class Library. Forneça um nome, tal como: Bola e pressione ok.
Na solution Explorer, botão direito e adicione um novo item, selecione Silverlight User Control, forneça o nome de Bola.Xaml e pressione Ok.
Para este demo eu criei uma animação, e chamei no meu construtor, como segue:
<UserControl x:Class=”Bola.Bola”
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Width=”400″ Height=”300″>
<UserControl.Resources>
<Storyboard x:Name=”SbBola”>
<DoubleAnimationUsingKeyFrames BeginTime=”00:00:00“ Storyboard.TargetName=”ellipse” Storyboard.TargetProperty=”(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)”>
<SplineDoubleKeyFrame KeyTime=”00:00:01.2000000″ Value=”64″/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime=”00:00:00“ Storyboard.TargetName=”ellipse” Storyboard.TargetProperty=”(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)”>
<SplineDoubleKeyFrame KeyTime=”00:00:01.2000000″ Value=”160″/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</UserControl.Resources>
<Grid x:Name=”LayoutRoot” Background=”White”>
<Ellipse Height=”80″ HorizontalAlignment=”Left” Margin=”24,48,0,0″ VerticalAlignment=”Top” Width=”80″ Fill=”#FF9B2B2B” Stroke=”#FF000000″ RenderTransformOrigin=”0.5,0.5″ x:Name=”ellipse”>
<Ellipse.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Ellipse.RenderTransform>
</Ellipse>
</Grid>
</UserControl>
Na parte do CodeBehind :
namespace Bola
{
public partial class Bola : UserControl
{
public Bola()
{
InitializeComponent();
SbBola.Begin();
}
}
}
Bem até ai nada demais.
Agora compile para gerar a dll.
Passo 2
Agora, o que precisamos fazer é criar um projeto Silverlight e adicionar a dll, tal como “Bola.dll” dentro da Aplicação Asp.Net, conforme Figura 1. Eu forneci o nome para o meu projeto de LoadAnimation.
Passo 3
O código seguinte mostra como carregar e mostrar o controle silverlight, ou seja, a dll.
Algumas explicações do código:
- Adicione o seguinte namespace, using System.Reflection, que irá permitir pegar o Assembly do objeto.
- Usar WebClient para abrir uma leitura assíncrona da dll.
- Pegar o caminho absoluto da dll.
- Quando o download é terminado, o assembly é carregado e uma instancia do controle é criada.
- Finalmente, é adicionado dentro do Layoutroot.
[Code]
namespace LoadAnimation
{
public partial class Page : UserControl
{
//assembly para ler a dll
private Assembly _assembly;
public Page()
{
InitializeComponent();
Load();
}
private void Load()
{
//puxar o arquivo da Aplicacao Asp.Net, precisa ser assincrono
WebClient down = new WebClient();
down.OpenReadCompleted += new OpenReadCompletedEventHandler(download_OpenReadCompleted);
string classe = “Bola.dll”;
string absoluteUri = System.Windows.Application.Current.Host.Source.AbsoluteUri;
string caminho = absoluteUri.Substring(0, absoluteUri.IndexOf(“ClientBin”)) + classe;
//assincrono
down.OpenReadAsync(new Uri(caminho, UriKind.Absolute));
}
//Ao terminar de ler é carregada na aplicacao
void download_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
AssemblyPart assemblyPart = new AssemblyPart();
_assembly = assemblyPart.Load(e.Result);
//Bola.Bola, esta é minha classe
UserControl control = (UserControl)_assembly.CreateInstance(“Bola.Bola”);
LayoutRoot.Children.Add(control);
}
}
}
Muito obrigada,
Flávia Moreira
|










