ABA


"בניית כפתור שמשנה תמונה ב-wpf"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21415 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21415
fly
חבר מתאריך 23.7.13
668 הודעות, 1 פידבק, -1 נקודות
   02:42   06.09.15   
אל הפורום  
  בניית כפתור שמשנה תמונה ב-wpf  
 
   ערכתי לאחרונה בתאריך 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;

}
}



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  בגדול אתה בכיוון, אבל לפי מבט ראשוני נראה שהסתבכת קצת כנס איציק2 22.09.15 14:16 1

       
איציק2
חבר מתאריך 26.4.08
2436 הודעות, דרג אמינות חבר זה
   14:16   22.09.15   
אל הפורום  
  1. בגדול אתה בכיוון, אבל לפי מבט ראשוני נראה שהסתבכת קצת כנס  
בתגובה להודעה מספר 0
 
   יש לך משתנה בשם OnOff כל מה שאתה צריך לעשות באיוונט של הקליק זה:
OnOff = !OnOff
ואז לבדוק את הסטטוס שלו.
אם הוא אמת תשים this.Background = משו, אחרת this.Background = משו אחר.

מקווה שהבנתי אותך נכון...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net