Laden...
T
Tempelbauer
myCSharp.de - Member
47
Themen
86
Beiträge
Letzte Aktivität
vor 8 Jahren
Dabei seit
24.06.2009
Erstellt vor 11 Jahren

Bei jeder externen Bibliothek die ich nutze hab ich das Problem. Ich füge eine Assembly dem Projekt hinzu, möchte die WPF-Controls darin nutzen, aber zur Designtime findet Visual Studio die Controls nicht und ich hab ein ungültiges Markup, sowie Fehler in der Fehlerliste (s. Titel).

Kompilieren und Starten geht aber und das Control wird normal verwendet.

Ich würde gern wissen was der Grund dafür ist dass es bei mir jedesmal im Designer so ein Problem gibt. Ist das ein Problem der Komponente oder hab ich irgendwas nicht beachtet?

Ich mach mal ein Beispiel:

Ich hab mir das Extended WPF Toolkit (Community Edition) heruntergeladen von der Codeplex-Seite, im Solutionverzeichnis entpackt, dann die Xceed.WPF.Toolkit Assembly unter Verweise hinzugefügt, dann im XAML des Windows den Namespace hinzugefügt

xmlns:xwpft="http://schemas.xceed.com/wpf/xaml/toolkit"

und die Komponente benutzt:

 <xwpft:IntegerUpDown Minimum="2" Maximum="5" Value="{Binding Config.MinOperands}" />

Und da bemängelt er dass IntegerUpDown (zur Designtime) nicht gefunden werden kann. Lauffähig ist es aber.

Also, was hab ich da falsch gemacht? Wo liegt mein Problem?
Vielen Dank

Erstellt vor 11 Jahren

Ich möchte einen moderneren Fenster-Look realisieren (ohne dicken Rand oder Titelleiste), so wie in Photoshop CS4 aufwärts, bzw. MS Office 2013.
Dazu habe ich folgende Einstellungen gesetzt:

<Window 
AllowTransparency="true"
ResizeMode="CanResize"
WindowStyle="None">
...
</Window>

Leider ists dann nicht mehr möglich mit der Maus die Fenstergröße zu ändern, wie man es gewohnt ist. Auch nicht wenn man BorderThickness des Window auf 1 setzt um so einen (flachen) Rand zu erzeugen.
CanResizeWithGrip funktioniert zwar, ist aber sehr unpraktisch, da man nur unten rechts skalieren kann.

Weiß jemand wie ich die Resize-Funktion ermögliche ohne einen fetten Fensterrand zu haben?

Erstellt vor 12 Jahren

Nein, Geld werd ich für so eine Spielerei nicht ausgeben.
Notfalls muss man den Rechner von meinem Programm halt manuell starten und beenden. Automatisch wär hält schön gewesen.

Und Printserver geht eh nicht ohne noch einen Switch aufzustellen. Die einzige Netzwerkverbindung im Büro ist ein dLAN-Adapter mit einem einzigen RJ-45-Port. Und WLAN gibts keins.

Erstellt vor 12 Jahren

Folgende Situation:
Möchte einen USB-Drucker am Büro-Rechner im Netzwerk freigeben, damit man auch an anderen Geräten (Notebook, etc) drucken kann. Allerdings muss logischerweise der Bürorechner an sein, damit das funktioniert, weil die Kommunikation nun mal über ihn läuft.
Daher würd ich gern ein Programm schreiben, dass ihn per WOL aus dem Schlaf holt und ihn danach wieder herunterfährt. Das schreiben eines solchen Programms ist nicht das Problem, nur ich weiß nicht, ob und wie ich mich in die Druckerwarteschlange einklinken kann? Optimalerweise sollte mein Programm automatisch aufgerufen werden, wenn jemand einen Druckauftrag an den (Offline)Drucker sendet. Das würde den Rechner hochfahren, die Warteschlange abarbeiten und dann wärs cool, wenn er den Shutdownbefehl sendet.

Gibts da ne Möglichkeit auf "Druckaufrag erhalten" bzw. "Warteschlange leer" eines bestimmten Druckers an seinem System zu reagieren?
Falls es .NET nicht ermöglicht, gehts denn über Interop?

Erstellt vor 12 Jahren

Hi

Mein Programm soll sich verhalten wie die Gadgets der Windows Sidebar:

  • BottomMost: In der Z-order immer ganz unten
  • Kein Icon in der Taskbar
  • Bei Windows+D (Zeige Desktop-Befehl) muss es sichtbar bleiben

Die ersteren beiden Eigenschaften hab ich hinbekommen, aber letzteres will noch nicht.
Kann man sich irgendwie (per Interop) irgendwo in der WinAPI registrieren um informiert zu werden wenn der ShowDesktop-Befehl ausgeführt wird, um das eigene Fenster in der Z-order neu zu setzen (ich benutze dazu SetWindowPos mit HWND_BOTTOM)?

Erstellt vor 12 Jahren

aahhh, jetzt fällts mir wieder ein...
das liegt daran, dass mein postbuilt-skript die generierte assembly via editbin modifiziert. das hat ich voll vergessen

danke

Erstellt vor 12 Jahren

Hi,

ich verwende in meinem XAML eigene Controls. Deshalb habe ich einige Namespaces eingefügt, z.B.

<Window xmlns:vm="clr-namespace:RegEd.ViewModel"
xmlns:v="clr-namespace:RegEd.View" >
...
<v:RegView ... />
...
</Window>

das funktioniert auch soweit. Lässt sich alles kompilieren und ausführen und funktioniert wie es soll.

ABER: zur Designzeit (Im VisualStudio Designer) habe ich bei jedem Namespace, der auf die eigene Assembly verweist (also xmlns:v und xmlns:vm) Fehler z.B. > Fehlermeldung:

"Der CLR-Namespace wurde nicht definiert. Der CLR-Namespace-URI verweist auf einen Namespace, der nicht in der Assembly vorhanden ist" oder bei Controls > Fehlermeldung:
"Der v:GreyableImage-Typ wurde nicht gefunden. Alle Assemblyverweise müssen vorhanden sein und alle Assemblys auf die verwiesen wird müssen erstellt worden sein" .
Jetzt befindet sich aber dieser Typ in der eigenen Assembly (Tippfehler kann auch nicht sein, weil lässt sich ja ausführen). Warum findet er die nicht? Woran kann das liegen?
Ich hab vermutet, dass das durch die Signierung der Assembly kommt, aber wenn ich die in den Projekt-Einstellungen deaktiviere ändert sich nichts am Problem.

Das ganze ist jedenfalls extrem nervig, da ich den Designer nicht mehr verwenden kann, sobald ich eigene Typen und Namespaces einbaue (was praktisch überall ist)...

Erstellt vor 12 Jahren

Danke

Es muss kein Shortcut im Menü angezeigt werden damit das Binding funktioniert. Das Anzeigen des Shortcuts ist nur für den User hilfreich.

das ist mir schon klar 😉 aber ich will ja, dass der user es sieht. wie bekomm ichs denn dann angezeigt?

edit: habs gefunden MenuItem.InputGestureText

Erstellt vor 12 Jahren

Ok, aber damit gibts dann folgende Probleme:

  • Ich muss das Binding 2 mal definieren (für den ToolbarButton und das MenuItem)
  • Der Shortcut wird nicht neben dem Menüheader angezeigt (verwende ich RoutedUICommands mit GestureCollection geht das)

Und wie lagere ich die KeyBindings am sinnvollsten aus, sodass ich die Shortcuts nicht in die View hardcoden muss? Gibt es da best practices?

Erstellt vor 12 Jahren

Hi

Baue eine Anwendung nach MVVM und benutze aktuell RoutedUICommands (hab ne statische klasse mit den Commands, im XAML des Fensters meine CommandBinding-Collection mit den CanExecute und Executed-Events und die zugehörige Implementierung im Codebehind der View).
Das ist aber bei MVVM unpassend, da meine Eventhandler in der View implementiert sind und eben nicht im ViewMoel wo ich sie gern hätte und wo sie bei MVVM auch reingehören.

Nach einigem Suchen bin ich auf Josh Smiths RelayCommand-Implementierung gestoßen. Damit würde das zwar funktionieren, aber RelayCommand unterstützt keine InputGestures, die ich aber brauche.

Gibt es eine bewährte ICommand-Implementierung die wie RelayCommand arbeitet, aber InputGestures unterstützt? Oder hat jemand eine Idee, wie ich die Gestures in RelayCommand reinimplementieren kann (ich wüsste jetzt nicht wie)?