Fragensteller
Timer programmieren VB.NET

Frage
-
Hallo,
nachdem ich schon Erfahrung mit VBA und VB.NET habe, will ich nun etwas mit IoT und dem Raspberry PI rumspielen.
Ziel ist es letztlich, ein Windows-Programm auf den Raspberry (mit Display als Universal Windows App) zu portieren.
Dabei ist mir etliches unklar.
Z.B. habe ich ein Image-Steuerelement, aber wie kann ich da nun ein Bild (Dateiname) zuweisen?
Desweitern benötige ich einen Timer. Es gibt ja dazu kein Steuerelement. Wie realisiert man sowas?
Danke und Gruß
Micha
Alle Antworten
-
Hallo Micha,
unter UWP arbeitet man mit StorageFile, ein Bild könnte man so dem Image Control zu weisen:
ImageHelper
Public Class ImageHelper Public Shared Function LoadImage(decodePixelWidth As Integer, file As Windows.Storage.StorageFile) As Task(Of BitmapImage) Try Dim bitmap As New BitmapImage() Using stream = Await file.OpenAsync(Windows.Storage.FileAccessMode.Read) bitmap.DecodePixelWidth = decodePixelWidth Await bitmap.SetSourceAsync(stream) End Using Return bitmap Catch generatedExceptionName As Exception Return Nothing End Try End Function End Class
Zuweisung:
Dim img = New Image() Dim file = Await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Bild.jpg") Dim bitmapImage = Await ImageHelper.LoadImage(600, file) img.Source = bitmapImage
Ein Timer Control gibt es nicht hier aber noch ein Link zu Doku
Leider wirst Du kaum beispiele in VB finden, da die meisten in C# sind. Hier noch ein Converter. Du solltest aber versuchen C# lesen zu lernen. So schwer ist das nicht.
Die Klasse von oben würde ich C# so aussehen:
public class ImageHelper { public static async Task<BitmapImage> LoadImage(int decodePixelWidth, Windows.Storage.StorageFile file) { try { BitmapImage bitmap = new BitmapImage(); using (var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read)) { bitmap.DecodePixelWidth = decodePixelWidth; await bitmap.SetSourceAsync(stream); } return bitmap; } catch (Exception) { return null; } } }
Microsoft hat auf Github viele Samples zur Verfügung gestellt, die sehr viel abdecken. Link
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!
-
Hallo Thomas,
danke für die schnelle Antwort.
Ich werde mich mal damit beschäftigen, und ich hab schon gemerkt, das man mit VB ziemlich allein auf weiter Flur steht. Warum eigentlich? Es ist vermutlich gegenüber dem normalen VB.NET noch mehr verkompliziert worden. Den Profis mag das egal sein, aber ich glaube nicht, dass man so viele Amateure begeistern kann, sich damit zu beschäftigen.
Gruß
und schöne Ostern.
Micha
-
Warum das so ist kann ich dir auch nicht sagen.
Auch dir schöne Ostern
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!