我想检查一个元素是否已折叠或可见,因此我可以取消隐藏或隐藏它,但我一直收到错误
CS0029无法将类型'Windows.UI.Xaml.Visibility'隐式转换为'bool。
代码:
if (Test1.Visibility == Visibility.Visible)
{
Test1.Visibility = Visibility.Collapsed;
}
答案 0 :(得分:1)
是的,您无法直接在控件可见性属性中设置true false。
可见性属性仅接受Visibility.Visible / Visibility.Hide / Visibility.collapsed
如果要在控件可见性中指定true / false值,则需要使用转换器。
转换器类:
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:local="clr-namespace:WpfApplication1"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<local:BooleanToVisibilityConverter x:Key="boolToVisibilityConverter"/>
</UserControl.Resources>
<Grid>
<TextBox Text="{Binding Name}" Visibility="{Binding IsVisibileName, Converter={StaticResource boolToVisibilityConverter}}" />
</Grid>
</UserControl>
XAML:
首先添加名称空间,然后将参考和调用转换器添加到控件中,如下面的文本框。
$scope.getCharacterInfo = function(callback) {
temp = $http.get('https://eu.api.battle.net/wow/character/' + $rootScope.current_user_realm + '/' + $rootScope.current_user + '?locale=en_GB&apikey=hidden');
temp.then(function onSuccess(response){
$scope.charInfo = response.data;
$scope.charInfo.thumbnail = "https://render-api-eu.worldofwarcraft.com/static-render/eu/" + response.data.thumbnail
console.log("$scope.charinfo = " + $scope.charInfo)
console.log("response.data = " + response.data)
if(callback) {
callback();
}
})
}
答案 1 :(得分:0)
我尝试这些代码而且没有错误
if (Test1.Visibility == Visibility.Visible)
{
Test1.Visibility = Visibility.Collapsed;
}