Wie wärs, dass wenn die rechte Maustaste gedrückt wird, du alles auf dem Fenster als bmp speicherst und du dann den Cursor unsichtbar lässt und stattdessen immer nur das Bild anzeigst. Und wenn man die Taste wieder loslässt der Cursor wieder angezeigt wird. Beim nächsten Mal überschreibst du einfach wieder das Bild und machst alles wieder von vorne.
Ich weiß zwar nicht wie man es in C++/Cli macht da ich mich nur in WinForms auskenne, aber das wäre eine Möglichkeit.
Lustig, ich verwende ja CF 2.0; oder ist die Smartphone-Edition noch 1.1? Beim PocketPC ist alles vorhanden. Werde mal schauen was die SDKs so für Systemanforderungen haben, macht sicher mal Sinn ein neueres zu installieren.
Ach ja, aber mit dem Framework müsste ja schon ein Zusamenhang bestehen in irgend einer Art, das HTC S740 zeigt Bilder ansonsten perfekt an, nur im eigenen Programm nicht. Das Smartphone hat nicht gerade 640x480, ich vermute fast zu 2003-Zeiten hatte man eine etwas tiefere Auflösung.
EDIT: Habe es nun ausprobiert: es liegt tatsächlich nur am fehlenden SDK. Mit dem Windows Mobile 5-SDK ist die Anwendung zwar immernoch etwas kleiner auf dem 6.1-Phone als im 5-Emulator aber nicht mehr so extrem; die Save-Methode funktioniert und die Bilder sehen einwandfrei aus! Ich verstehe nur nicht so ganz dass die Datei-Dialoge nicht implementiert sind, wo das Framework doch sonst ziemlich vollständig ist.
Hallo!
Ich verwende das Webbrowser Control und irgendwie verhält es sich im Programmablauf seltsam. Wenn ich zb. in einer schleife nacheinander
WebBrowser_Vorschau.DocumentText = html
Ausführe, wird alles schön nacheinander angezeigt und aktualisiert. Wenn ich denselben Befehl 1-2 Minuten später benutze, wird einfach nur ein weißes Fenster angezeigt.
Oder es wird einfach der HTML String angezeigt, der vor 1-2 Minuten zugewiesen wurde.
Wenn ich versuche, mit
Dim temp As String = WebBrowser_Vorschau.DocumentText
abzufragen welcher HTML Text den nun zugewiesen ist, bekomme ich einen Umwandlungsfehler. Genauso als wenn ich mit
If WebBrowser_Vorschau.IsBusy = True Then
[...]
End If
versuche rauszufinden, ob das Control irgendwie aktiv ist. Sehr komisch das ganze.
Ich glaub' folgendes wird gewollt:
byte source = 0x42; // Dezimal 66, Hexadezimal 42
byte dest = gesuchteFunction(source);
Debug.Assert(dest == 0x66);
/* oder */
Debug.Assert(dest == 42);
Warum auch immer
du meinst sowas wie den expander ?
der expander war das erste control woran man erkannte das forms nicht mehr erweitert wird, da der expander in forms nicht dabei ist
also ich denk nicht das es was fertiges gibt - musste selber per hand ran
So nebenbei fällt mir gerade ein ich muss .net 2 mal mitliefern. 32 und 64 bit Version
Das mit minimum SP für .net 2.0 ist eine gute Idee werde ich danach testen. Ich hoffe mal mehr als SP2 wird nicht gebraucht. Eine SP Installation liefere ich nämlich sicher nicht mit.
Aber das es für sowas von MS seite nichts gibt wundert mich etwas. Zumindest ab und zu müssen die ja vor änlichen Problemen stehen.
Das die Tastatur-Eingabe nicht flüssig ist, ist der Normalfall.
Öffne notepad und halte einfach mal 'x' oder so gedrückt - Da sieht man das Phänomen ebenfalls und ist da auch sinnvoll
Die Lösung:
- Bei KeyDown in nem Array die entsprechende Taste als gedrückt markieren
- Bei KeyUp in dem Array die Taste wieder als nicht-gedrückt markieren
- In nem Timer oder Thread oder sonstwie dann das Array abfragen, und die Aktionen ausführen die bisher bei KeyDown ausgeführt würden...
so
ich musste das problem der editable combobox nun auch loesen
das problem an der ganzen sache war das "SelectedItem" auf null geht sobald man text eingibt
um das zu loesen kann man Text binden
da war dann wieder das problem das SelectedItem null ist wenn Text neuer text war
man koennte nun entweder - wenn neuer text eingegeben wurde und die combobox verliert den focus den eintrag neu hinzu fuegen - am sonsten kann man sich einfach die letzte selektion merken und die dann neu setzen
hier meine funktionierende implementation:
public class Fruit
{
public string Name { get; set; }
}
public class FruitViewModel : ViewModelBase
{
public FruitViewModel(Fruit fruit)
{
Fruit = fruit;
}
public string Name
{
get { return Fruit.Name; }
set
{
Fruit.Name = value;
OnPropertyChanged(this, "Name");
}
}
public Fruit Fruit
{
get { return _fruit; }
set
{
_fruit= value;
OnPropertyChanged(this, "Fruit");
}
}
private Fruit _fruit;
public override string ToString()
{
return Name;
}
}
public class MainViewModel : ViewModelBase
{
public ObservableCollection<FruitViewModel> Fruits { get; set; }
public MainViewModel()
{
Fruits= new ObservableCollection<FruitViewModel>();
Fruits.Add(new FruitViewModel(new Fruit() { Name = "Banane" }));
Fruits.Add(new FruitViewModel(new Fruit() { Name = "Ananas" }));
Fruits.Add(new FruitViewModel(new Fruit() { Name = "Apfel" }));
SelectedUser = Fruits.FirstOrDefault();
}
public FruitViewModel SelectedFruit
{
get { return _selectedFruit; }
set
{
_selectedFruit = value;
if (_selectedFruit != null)
_oldSelectedFruit = _selectedFruit;
OnPropertyChanged(this, "SelectedFruit");
}
}
private FruitViewModel _selectedFruit;
private FruitViewModel _oldSelectedFruit;
public string NewFruitName
{
get { return _newFruitName; }
set
{
_newFruitName= value;
if (SelectedFruit == null)
_oldSelectedFruit.Name = _newFruitName;
OnPropertyChanged(this, "NewFruitName");
}
}
private string _newFruitName;
}
<!-- Wenn man das ItemTemplate nicht setzt wird wird die drop down liste nicht aktualisiert da es fuer "ToString()" kein PropertyChanged geben kann -->
<ComboBox ItemsSource="{Binding Fruits}" IsSynchronizedWithCurrentItem="True" IsEditable="True" Text="{Binding NewFruitName}" SelectedItem="{Binding SelectedFruit}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
als mvvm sicht betrachtet ist es n bissl eigenartig
denn dann waere "Foo" das model, und das model implementiert kein INotifyPropertyChanged
mein vorschlag waere:
public class Foo // model
{
public string Data { get; set; }
}
public class Bar : INotifyPropertyChanged // viewmodel
{
public Bar(Foo elem)
{
_elem = elem;
}
private Foo _elem;
public string Data
{
get { return elem.Data; }
set
{
elem.Data=value;
OnPropertyChanged("Data");
}
}
private void OnPropertyChanged(string property)
{
...
}
}
es kann aber natuerlich sein das du Foo irgendwo auch separat als viewmodel verwendest, dann stellt sich nur die frage wozu du dann Bar brauchst wenn du Foo direkt nehmen koenntest
//edit: tags vergessen