0

WPF: Hyperlink verwenden

Das Folgende ist eine Anleitung, um zu zeigen, wie man in einem C#-Projekt einen Hyperlink verwenden kann.

In die XAML-Datei des Fensters, in dem der Link erscheinen soll, fĂŒgt man Folgendes ein:

<TextBlock>           
    <Hyperlink NavigateUri="http://www.informatik-pc.de/blog" RequestNavigate="Hyperlink_RequestNavigate">
        Click here to go my site!
    </Hyperlink>
</TextBlock>

Die Navigation erfolgt dann ĂŒber das RequestNavigate-Event, welches man eben benannt hat.
Deshalb in die dahinter liegende .cs – Datei folgendes hinzufĂŒgen:

private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
    e.Handled = true;
}
0

Thunderbird: Nur Uhrzeit, kein Datum

Schon öfter hatte ich das Problem, dass bei mir bei E-Mails im Thunderbird nur die Uhrzeit und nicht das Datum angezeigt wurde. Dadurch rutschen die Mails weit nach unten und die Sortierreihenfolge (nach Datum logischerweise) geht verloren.
Ich verwende die neuste Thunderbird-Version (17.0.7).
Wenn ich die E-Mail öffne und mir den Quelltext anzeigen lasse, dann sehe ich, dass im Mail-Header die Uhrzeit und das Datum korrekt angezeigt werden. Also stimmt etwas mit den Thunderbird nicht.

Lösung:
Ich hab mir das Add-on ConfigDate heruntergeladen und installiert. Stellt man in den Einstellungen jetzt die Anzeige auf Kurz/ Short, so wird das Datum bei allen Mails korrekt angezeigt!

0

Windows: Registry Script Error

Wollte gerade ein Registry Skript (.reg) ausfĂŒhren, bekam aber stattdessen die Fehlermeldung

Cannot import XXX: The specified file is not a registry script. You can only import binary registry files from within the registry editor.

Problem war, das ich die .reg-Datei in UTF-8-Kodierung abgespeichert hatte. Windows akzeptiert allerdings nur ANSI.

0

Windows: Caps Lock deaktivieren, bzw. umbelegen

Ich hab ja bereits hier beschrieben, wie man unter Linux den Caps Lock los wird.
So funktionierts auch unter Windows:

Unter

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

einen neuen BinÀrwert anlegen mit dem Namen Scancode Map.

Als Wert kann man je nachdem was man beabsichtigt folgendes eintragen:

  • 00000000 00000000 02000000 2A003A00 00000000 um auf Shift umzuschalten
  • 00000000 00000000 02000000 1D003A00 00000000 um auf Ctrl umzuschalten
  • 00000000 00000000 02000000 00003A00 00000000 um zu deaktivieren

Oder man lĂ€d die fertigen .reg-Dateien hier runter und fĂŒhrt diese aus.

0

C#: FileNotFoundException Assembly Reference

Gerade das Problem gehabt, dass ich beim AusfĂŒhren meines Programms folgende Fehler bekam:
System.IO.FileNotFoundException

Could not load file or assembly ‚XXX, Version=X.X.X.X, Culture=XXX, PublicKeyToken=XXX‘ or one of its dependencies. The system cannot find the file specified.

at XXX.Main(String[] args)
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

Bei der Referenz ist auch „Copy local“ auf true gesetzt. Sie wird auch korrekt mit ins Debug-/Release-Verzeichnis kopiert. Der Compiler wirft auch keine Fehlermeldung. Es scheint also korrekt im Projekt eingebunden zu sein. Jedoch beim AusfĂŒhren krachts.

Problem war, dass ich die .dll umbenannt hab.
Dies tritt nur auf, wenn die zu referenzierende Assembly signiert ist.
Also eine Referenz-dll niemals umbennenen!

0

Android: Aus Thread auf UI zugreifen

Will man in einer Android-App aus einem Thread auf ein OberflÀchenelement zugreifen, so wird man folgende Exception bekommen:

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

Um aus einem Programmfaden heraus die UI zu verÀndern, muss man so vorgehen:

runOnUiThread(new Runnable() 
{
    public void run() 
    {
        //update ui here
    }
});

Alternativ kann man vor Beginn des Multithreadings einen Handler erstellen und diesem, aus dem Thread heraus, die Befehle ĂŒbergeben.