Guten Morgen,
Ich würde da etwas anders herangehen und das PreviewMouseDown Event abfangen.
Dort kannst du deine Abfrage tätigen und, wenn der "Click" abgebrochen werden soll einfach e.Handled = true; setzen.
Dann wird der Klick auf den Toggle Button nicht ausgeführt.
Lg
Ich befürchte, dass mir da an einigen Stellen ein Fehler mit dem Index unterlaufen ist 😃
Hätte nur gedacht, dass es evt. eine Möglichkeit gibt, leichter mit den Bonbons zu arbeiten.
Viel kann man mit den Bonbons nicht machen. Sind mindestens 3 oder mehr Bonbons der gleichen Farbe horizontal oder vertikal nebeneinander, so verschwinden sie. Es gibt dann noch Bonusbonbons, aber die spieler erstmal keine Rolle.
Guten Abend,
Ich arbeite nebenbei an einem kleinem Projekt um mich allgemein mit Bot's zu beschäftigen. C# mag dazu nicht die beste Lösung sein, das ist mir durchaus bewusst, da ich allerdings beruflich mit WPF/C# arbeite fühle ich mich damit recht wohl 😃
So nun zu meinem momentanen Stand der Dinge.
Problem, welches es zu lösen gibt:
Siehe Anhang
Regel:
Wie üblich bei solchen Spielen müssen min. 3 gleiche Bonbons in eine Reihe Horizontal oder Vertikal gebracht werden damit sie verschwinden.
Was mein Bot bis jetzt kann:
Mein Problem:
-> Wie organisiere ich die Bonbons in meinem Code, um leicht mit ihnen arbeiten zu können und wie finde ich am schnellsten heraus, welches Bonbon verschoben werden müsste?
Momentan habe ich eine einfache Liste mit den Bonbons (Klasse mit Farbe und Koordinaten). Anhand iherer Position in der Liste kenne ich ihre "position" auf dem Spielfeld. Ich gehe zunächt horizontal Reihe für Reihe druch und suche 2 gleichfarbige Bonbons in einem Bereich von 3. Ist das der Fall so schaue ich ob in der nähe des anderstfarbigen Bonbons nicht ein Bonbon ist, welches zu den anderen beiden passt. Ist das der Fall, so schiebe ich das Bonbon an seine neue Stelle.
Nunja was soll ich sagen durch die ganzen Zählerschleifen und abfragen habe ich mich ganz schön verzettelt und teilweise werden Bonbons am rand ignoriert.
Wäre cool, wenn mir jemand da etwas auf die Sprünge helfen könnte.
Mfg OddN3ss
Hinweise
Zitat von: Trackbar
The TrackBar is a scrollable control similar to the ScrollBar control.You can configure ranges through which the value of the Value property of a track bar scrolls by setting the Minimum property to specify the lower end of the range and the Maximum property to specify the upper end of the range.The LargeChange property defines the increment to add or subtract from the Value property when clicks occur on either side of the scroll box.The track bar can be displayed horizontally or vertically.
You can use this control to input numeric data obtained through the Value property.You can display this numeric data in a control or use it in code.
--> Du kannst die Range einstellen und deine Werte daran orientieren.
Hallo,
danke für eure Antworten.
Es hat an der HTTP Activation gelegen, habe diese Option vorher immer übersehen 😄
Vielen Dank
Hallo,
Ich habe einen kleinen Windows Server 2012.
Zunächst einmal habe ich einen FTP Seite angelegt um Applications mit ClickOnce zu updaten. Dies funktioniert einwandfrei.
Nun wollte ich für ein ganz simples Lizenssystem einen WCF Service mit IIS einbinden. Dies stellt momentan ein unüberwindbares Hindernis für mich da, da meine Erfahrung in diesem Bereich bzgl. Setup etc. gegen NULL tendieren 😃
Ich habe also eine neue FTP Page angelegt und einen Ordner zugewiesen. Ich nehme meinen local entwickelten WCF Service und veröffentliche diesen auf meinen FTP, kopiere die Files in den Ordner der neuen Page und versuche zum Service zu connecten.
http://1**.*..*8/Service1.svc.
Dann erhalte ich folgende Fehlermeldung:> Fehlermeldung:
HTTP-Fehler 404.17 - Not Found
Der angeforderte Inhalt ist offenbar ein Skript und kann vom Handler für statische Dateien nicht angezeigt werden.
Ich habe schon das gesamte Internet nach Lösungen durchsucht und schon mehrere Stunden damit verbracht den Fehler zu finden. Nun... es hat bis jetzt nichts gebracht, oder ich mache etwas grundlegend Falsch.
Hat jemand damit schonmal Erfahrung gemacht, kann mir helfen oder es sich sogar über TeamViewer mal das ganze anschauen?
mfg OddN3ss
Wird evtl. am
DropShadowEffect
liegen, wie es in
> auch der Fall war.
SnapsToDevicePixels gilt IIRC für Linien und Co, aber nicht für Text.
Ok... Hääääääääääääääääää
Also jetzt bin ich verdammt verwirrt. Entferne ich aus beiden Applications den DropShadowEffect ist kaum ein Unterschied mit bloßem Auge erkennbar. Nur wie kann es sein, dass sich der Effect in beiden Applications so drastisch unterscheidet?
Du könntest mal mit
> schauen ob das Element noch irgendwelche Stile erbt.
negativ, ich verwende ja noch weitere Textblöcke. Bei allen anderen ist die erscheinung in beiden App's identisch und wie erwartet, nur eben dieser eine Block schaut verschwommen aus.
suche immernoch nach einer Lösung!
Nein, in keiner der beiden Projekte.
lg OddN3ss
Guten Morgen 😃
Situation:
Ich habe 2 Anwendungen. Beide haben den selben Background (#FF282828). Beide "MainWindow's" senden eine Anfrage an einen WCF-Service, um dessen Status zu erfragen. Das Ergebnis wird via Binding in der View dargestellt.
**Problem: **
Das Verhalten der Anwendung 'Links' ist wie erwartet, wohingegen Anwendung 2 den Text verschwommen darstellt. Aufbau des XAML-Codes ist identisch. Ein Style für den Textblock ist in beiden Anwendungen enthalten. Er regelt lediglich Foreground,Font und FontSize.
BILD SIEHE ANHANG
Links OK!, rechts verschwommen
XAML-Code beider Anwendungen für diesen Abschnitt:
<!--Connection Status-->
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Center" Grid.Row="2" Grid.Column="1">
<TextBlock Text="Server: " Foreground="White" FontSize="20" FontFamily="Calibri" >
<TextBlock.Effect>
<DropShadowEffect ShadowDepth="4" Direction="330" Opacity="0.5" BlurRadius="4" Color="Black"/>
</TextBlock.Effect>
</TextBlock>
<TextBlock Text="{Binding connectionStatus}" Foreground="{Binding connectionColor}" FontSize="20" FontFamily="Calibri" >
<TextBlock.Effect>
<DropShadowEffect ShadowDepth="4" Direction="330" Color="Black" Opacity="0.5" BlurRadius="4" />
</TextBlock.Effect>
</TextBlock>
</StackPanel>
Jemand eine Idee, was das sein könnte?
Mfg OddN3ss
Bei mir sieht das ganze immer so aus, evt. hilft es dir ja weiter.
private ICommand _goToChatErstellenCommand;
public ICommand goToChatErstellenCommand
{
get
{
if (_goToChatErstellenCommand == null)
{
_goToChatErstellenCommand = new RelayCommand(param => goToChatErstellenCommand_ExecuteCommand(param));
}
return _goToChatErstellenCommand;
}
set { _goToChatErstellenCommand = value; }
}
private void goToChatErstellenCommand_ExecuteCommand(object param)
{
//Do Something
}
RelayCommand Class
public class RelayCommand : ICommand
{
readonly Action<object> _execute;
readonly Predicate<object> _canExecute;
public RelayCommand(Action<object> execute)
: this(execute, null)
{
}
public RelayCommand(Action<object> execute, Predicate<object> canExecute)
{
if (execute == null)
throw new ArgumentNullException("execute");
_execute = execute;
_canExecute = canExecute;
}
public bool CanExecute(object parameter)
{
return _canExecute == null ? true : _canExecute(parameter);
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public void Execute(object parameter)
{
_execute(parameter);
}
}
Mfg OddN3ss
Hallo,
Also folgender Stand:
Ich habe eine Anwendung, die einen Screenshot erstellt und diesen dann auswertet und die Koordinaten eines bestimmten Farbwertes sucht.
Da er allerdings den Kompletten screen durchsucht, dauert das ganze zu lange.
Ich möchte gerne nur einen Bereich um die aktuelle Mausposition durchsuchen.
Mit Bitmap etc habe ich noch nicht so viel gearbeitet und ich weis nicht wirklich, wie ich das ganze dann angebe.
Anbei der Code (Aktueller Stand):
Screen vom gesammten Bildschirm
private Bitmap CaptureScreen()
{
//Point a = new Point();
//a = Control.MousePosition;
Bitmap b = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
using (Graphics g = Graphics.FromImage(b))
{
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), b.Size);
}
return b;
}
Auswertung des Screens
public Point GetPixelPosition(Color SearchColor, bool IgnoreAlphaChannel)
{
//Point a = new Point();
//a = Control.MousePosition;
_ColorFound = false;
Point PixelPt = new Point(0, 0);
using (Bitmap b = CaptureScreen())
{
for (int i = 0; i < b.Width; i++)
{
if (this._ColorFound)
break;
for (int j = 0; j < b.Height; j++)
{
if (this._ColorFound)
break;
Color tmpPixelColor = b.GetPixel(i, j);
if (((tmpPixelColor.A == SearchColor.A) || IgnoreAlphaChannel)
&& (tmpPixelColor.R == SearchColor.R)
&& (tmpPixelColor.G == SearchColor.G)
&& (tmpPixelColor.B == SearchColor.B)
)
{
PixelPt.X = i;
PixelPt.Y = j;
this._ColorFound = true;
}
}
}
}
return PixelPt;
}
Kann mir da jemand auf die Sprünge helfen?
#EDIT#
Habe mein Problem gelöst bekommen:
public Point GetPixelPosition(Color SearchColor, bool IgnoreAlphaChannel, int pixelsToSearchAround)
{
Point mousePosition = Cursor.Position;
_ColorFound = false;
Point PixelPt = new Point(0, 0);
using (Bitmap b = CaptureScreen())
{
int minX = mousePosition.X - pixelsToSearchAround;
int maxX = mousePosition.X + pixelsToSearchAround;
int minY = mousePosition.Y - pixelsToSearchAround;
int maxY = mousePosition.Y + pixelsToSearchAround;
if(minX < 0) minX = 0;
if(minY < 0) minY = 0;
if(maxX > b.Width) maxX = b.Width;
if(maxY > b.Height) maxY = b.Height;
for (int i = minX; i < maxX; i++)
{
if (this._ColorFound)
break;
for (int j = minY; j < maxY; j++)
{
if (this._ColorFound)
break;
Color tmpPixelColor = b.GetPixel(i, j);
if (((tmpPixelColor.A == SearchColor.A) || IgnoreAlphaChannel)
&& (tmpPixelColor.R == SearchColor.R)
&& (tmpPixelColor.G == SearchColor.G)
&& (tmpPixelColor.B == SearchColor.B)
)
{
PixelPt.X = i;
PixelPt.Y = j;
this._ColorFound = true;
}
}
}
}
return PixelPt;
}
Musst du deinem NotifyPropertyChanged(); nicht noch etwas übergeben?
Ich bin es so gewohnt:
NotifyPropertyChanged("ChatContent");
Allerdings kann ich auch gerade auf der völlig falschen Spur sein 😃
Warum fragst du nicht einfach ab, ob gespeichert werden kann, bevor du die Daten des neuen Header lädst? Wenn die Daten korrigiert werden müssen brichst du einfach den Ladevorgang des angeklickten headers ab.
Um auf den alten zurück zu kommen, könntest du da nicht einfach eine art Klick simulieren? (Header aktiv). Dann könntest du dir einfach in einer variable den alten Header merken.
Mfg OddN3ss
PS: Bin mir nicht ganz sicher ob ich dein Vorhaben richtig verstanden habe 😉