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;
}
...