visual studio que puede programacion presentacion hacer ejemplos desventajas con animaciones wpf animation binding resources brush

studio - WPF Editar recurso



visual studio wpf (2)

Para animar el cambio, intente crear un Storyboard y llame a Begin en él.

(Voy a tirar juntos un ejemplo)

editar: ¡Parece que es otro Silverlight! = WPF falla de mi parte. Parece que no puedo hacerlo funcionar en WPF.

Hola, ¿hay alguna forma de cambiar un Pincel de recurso del código o mediante un enlace? lo que quiero hacer es cambiar el color de mi pincel "principal" cuando se hace clic en un botón.

¡Muchas gracias!

Editar:

Es un GradientBrush, ¿cómo puedo cambiar los colores en eso?

myBrush.GradientStops[0].Color = Colors.Red;

solo me da una excepción ... ¿y hay alguna manera de animar el cambio de color, como una historia?


Si está usando el patrón Model-View-ViewModel (MVVM) o algo similar, podría hacer que el color del pincel (o el pincel completo) sea una propiedad de su modelo de vista y se una directamente al mismo.

En mi opinión (inexperta), los recursos no deberían cambiar en tiempo de ejecución. Si va a cambiar, agréguela.

(edit2: Cambió de UserControl de nivel superior al estilo Silverlight a WPF Window. Como Ray Booysen señaló en los comentarios, un UserControl en WPF expondría el color a través de DependencyProperty, no lo vincularía a un ViewModel.)

XAML:

<Grid x:Name="LayoutRoot"> <Grid.Background> <SolidColorBrush Color="{Binding BackgroundColor}" /> </Grid.Background> ...

Clase de Viewmodel:

public class MyViewModel : INotifyPropertyChanged { public Color BackgroundColor { get { ... } set { ... } // fire PropertyChanged event } ...

XAML.cs:

public partial class MyWindow : Window { private MyViewModel m_viewmodel; public MyWindow() { InitializeComponent(); viewmodel = new MyViewModel(); this.LayoutRoot.DataContext = viewmodel; } private void ButtonClick(object sender, RoutedEventArgs e) { this.viewmodel.BackgroundColor = Color.Red; } ...