ערכתי לאחרונה בתאריך 06.09.15 בשעה 03:06 בברכה, fly
אני רוצה לבנות User controlשיש בתוכו כפתור שכל לחיצה משנה את התמונה של הרקע
לדוגמה יש 2 תמונות , מנורה כבויה ומנורה דלוקה
ללחיצה יהיה binding למשתנה בוליאני IsOn
ברגע שילחצו על User control הוא ישנה תמונה ואני אקבל לevent
את מצב משתנה IsOn
<UserControl x:Class="PL_Wpf.CustomControls.Bulb" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" > <Grid> <Button x:Name="BulbButton" Height="60" Width="40" Click="BulbButton_Click" > <Button.Template> <ControlTemplate> <Image Source="../Pics/bulb_off.jpg" Width="40" Height="60" > <Image.Style> <Style TargetType="{x:Type Image}"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=Bulb, Path=OnOff}" Value="True"> <Setter Property="Source" Value="../Pics/bulb_on.jpg" /> </DataTrigger> <DataTrigger Binding="{Binding ElementName=Bulb, Path=OnOff}" Value="False"> <Setter Property="Source" Value="../Pics/bulb_off.jpg" /> </DataTrigger> </Style.Triggers> </Style> </Image.Style> </Image> </ControlTemplate> </Button.Template> </Button> </Grid> </UserControl> public partial class Bulb : UserControl, INotifyPropertyChanged { public Bulb() { InitializeComponent(); DataContext = this; OnOff = false; }
public bool _onOff { get; set; } public bool OnOff { get { return _onOff; } set { _onOff = value; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("OnOff")); } } }
public event PropertyChangedEventHandler PropertyChanged; public void BulbButton_Click(object sender, RoutedEventArgs e) { OnOff= (OnOff == false) ? true : false; if (OnOff == false) { OnOff = true; } }
|