Meine CommandBar
hat ihre IsOpen-Eigenschaft in XAML auf True gesetzt und daher ist der Text für jede Schaltfläche sichtbar, da die Beschreibungen sichtbar bleiben sollen.Keine installierten Komponenten wurden erkannt. TargetName HighContrastBorder kann nicht aufgelöst werden - UWP Windows 10
Wenn ich Ellipsen Taste auf, versteckt es den Text und das zweite Mal, dass ich darauf klicken, bekomme ich folgende Fehlermeldung:
No installed components were detected. Cannot resolve TargetName HighContrastBorder
.
Es ist etwas umständlich mit dem UI los und vielleicht ist es im Zusammenhang mit dieser, aber ich kann nicht herausfinden, was oder warum:
Wie Sie meine Knöpfe Text sind schnitt- sehen für die verschiedenen Tasten off ich die Anzeige:
-Code weise, gibt es nichts besonderes an sich, soweit ich sehen kann:
<Page.BottomAppBar>
<CommandBar IsOpen="True"
ClosedDisplayMode="Compact"
IsSticky="True"
Visibility="{Binding
CommandBarViewModel.IsCommandBarVisible,
Converter={StaticResource BoolToVisibilityConverter}}"
Background="{ThemeResource SystemControlBackgroundAccentBrush}">
<AppBarButton
Icon="Add"
Label="Add"
Foreground="White"
Command="{Binding CommandBarViewModel.AddCommand}"
Visibility="{Binding CommandBarViewModel.IsAddVisible,
Converter={StaticResource BoolToVisibilityConverter}}"/>
<AppBarButton
Icon="Refresh"
Label="Refresh"
Foreground="White"
Command="{Binding CommandBarViewModel.RefreshListCommand}"
Visibility="{Binding
CommandBarViewModel.IsRefreshListVisible,
Converter={StaticResource BoolToVisibilityConverter}}"/>
</CommandBar>
</Page.BottomAppBar>
Ther e ist kein Innerexception und die Ausnahme von App.g.i.cs
#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException += (sender, e) =>
{
if (global::System.Diagnostics.Debugger.IsAttached)
global::System.Diagnostics.Debugger.Break();
};
#endif
beide Irgendwelche Ideen über meine Frage heißt Text Cut-off und nicht behandelte Ausnahme ausgelöst wird?
Dank
UPDATE - 1:
Wenn ich die binded Eigenschaft entfernen (CommandBarViewModel.IsCommandBarVisible
) von der Visible
Eigenschaft für das CommandBar
und codieren es Visible
, bewegt sich der Fehler auf der ganzen Linie und statt in den App.gics passiert, ist es nun verbindliche Eigenschaft der ersten Schaltfläche, die es versucht, die Sichtbarkeit auf zu setzen, dh
Aber dieses Mal die folgende Fehlermeldung erhalten:
An exception of type 'System.Runtime.InteropServices.COMException'
occurred in GalaSoft.MvvmLight.dll but was not handled in user code
WinRT information: Cannot resolve TargetName HighContrastBorder.
Additional information: No installed components were detected.
ähnlich wie Sie sehen können, aber es scheint von MVVMLight zu kommen ??? Macht keinen Sinn!
Irgendwelche Vorschläge/Ideen zur Lösung?
UPDATE - 2:
Wenn ich alle Sichtbarkeit Eigenschaften entfernen (und deren entsprechende Bindung), wird der Befehl entsprechend angezeigt (dh nicht mehr abgeschnittener Text), und ich kann auf der Ellipsen-Taste klicken immer und immer wieder und es stürzt nicht mehr !!
Also es ist definitiv mit der Sichtbarkeit verbunden und bindet es an eine Eigenschaft an das Ansichtsmodell, aber was genau, habe ich keine Ahnung.
Könnte es sein, dass das ViewModel nur erstellt wird, wenn die Seite geladen wird, und es zu diesem Zeitpunkt für die CommandBar zu spät ist und die Schaltflächen korrekt initialisiert werden.
Odd als alles in Bezug auf das Anzeigen/Hidding Tasten funktioniert wie erwartet, außer dass mein Text abgeschnitten ist und ich nicht auf die Schaltfläche Ellipsen klicken kann oder es stürzt ab.
UPDATE - 3:
fand ich ein Work-around und ich sprang nicht und darüber nach unten, wie ich es falsch ist das Gefühl, aber jetzt wird es tun. Um diesen Fehler zu umgehen, stelle ich sicher, dass ich die Befehlsleiste und die Schaltflächen sichtbar mache, wenn ich mein ViewModel initialisiere, und verstecke es dann entsprechend der Seite, auf der es sich befindet.
public class AppShellViewModel { public void AppShellViewModel { this.CommandBarViewModel.IsCommandBarVisible = true; this.CommandBarViewModel.IsAddVisible = true; this.CommandBarViewModel.IsRefreshVisible = true; this.CommandBarViewModel.IsCancelVisible = true; }
...
\\Hide buttons accordingly in the various parts of your app.
this.CommandBarViewModel.IsCancelVisible = false;
}
Persönlich fühle ich mich wie es ist ein Fehler mit dem CommandBar-Steuerelement und Tasten wie ich in der Lage sollte es (und seine Tasten) zu verstecken aus den ihnen gehen und es soll
a) in der Lage sein, dies fehlerfrei zu handhaben. b) in der Lage sein, sich selbst korrekt neu zu zeichnen, ohne Text abgeschnitten zu haben.
Ich könnte natürlich falsch liegen und es könnte etwas mit meinem Code zu tun haben, aber aus meiner Sicht, entfernt die Sichtbarkeit Binding es und macht es sichtbar macht es zunächst zu beheben, so scheint es auf diese Weise nach unten zeigen.
UPDATE - 4:
Hier ist der eigentliche Code. Ich habe es so weit wie möglich vereinfacht (d. H. Namespaces, DataTemplates, Hauptinhalt usw. entfernt) und nur die CommandBar und ihre Schaltflächen übrig gelassen. Hoffentlich wird das helfen.
Wie Sie bei der Verwendung von mvvmlight sehen können, ist meine Quelle auf Locator
gesetzt und mein Pfad ist auf die entsprechende ViewModel
, in diesem Fall AppShellViewModel, eingestellt. Doch
wie Grace erklärt, wenn ich x verwenden: binden statt Bindung, bekomme ich folgende Fehlermeldung:
Invalid binding path 'CommandBarViewModel.IsCommandBarVisible' :
Property 'CommandBarViewModel' can't be found on type 'AppShell'
MyApp ..\MyApp\Views\AppShell.xaml
XAML-Code:
<Page.Resources>
<converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
<x:Double x:Key="EllipseDimension">30</x:Double>
</Page.Resources>
<Page.BottomAppBar>
<CommandBar x:Name="AppBar"
IsOpen="{x:Bind CommandBarViewModel.IsCommandBarVisible}"
ClosedDisplayMode="Compact"
IsSticky="{x:Bind CommandBarViewModel.IsCommandBarVisible}"
Visibility="{x:Bind CommandBarViewModel.IsCommandBarVisible,
Converter={StaticResource BoolToVisibilityConverter}}"
Background="{ThemeResource SystemControlBackgroundAccentBrush}"
IsEnabled="{x:Bind IsNotBusy}">
<AppBarButton
Icon="Add"
Label="Add"
Foreground="White"
Command="{x:Bind CommandBarViewModel.RegisterCommand}"
Visibility="{x:Bind CommandBarViewModel.IsRegisterVisible,
Converter={StaticResource BoolToVisibilityConverter}}"/>
<AppBarButton
Icon="Refresh"
Label="Refresh"
Foreground="White"
Command="{x:Bind CommandBarViewModel.RefreshListCommand}"
Visibility="{x:Bind CommandBarViewModel.IsRefreshListVisible,
Converter={StaticResource BoolToVisibilityConverter}}"/>
</CommandBar>
</Page.BottomAppBar>
</Page>
Dank.
Ich habe die gesamte Lösung für HighContrastBorder durchgesehen und es ist nirgendwo zu finden? Irgendwelche anderen Vorschläge? Ich werde meine Antwort aktualisieren Ich habe etwas anderes gefunden, das seltsam ist. – Thierry
Ich aktualisiere meine Antwort, kann Ihren Fehler immer noch nicht reproduzieren, können Sie mir Ihre Probe schicken? – thang2410199