В UserControl я хочу, чтобы кнопки отображали изображения (предоставляемые динамическими ресурсами). Если динамический ресурс недоступен/предоставлен приложением, я хочу, чтобы кнопка отображала содержимое по умолчанию.Содержимое кнопки по умолчанию, если изображение (из динамического ресурса) недоступно
Моя идея состояла в том, чтобы поместить содержимое по умолчанию в текстовый блок, который находится под изображением, и скрыть его (чтобы он не блистал), пока источник изображения равен NULL. Но это условие не работает, если сбой разрешения DynamicResource. Каким будет статус источника изображения в этом случае?
<Button Command="{Binding DoSomethingCommand}">
<Grid>
<TextBlock Text="DefaultText" Visibility="Collapsed">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=TestImage, Path=Source}" Value="{x:Null}">
<Setter Property="Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
<Image x:Name="TestImage" Source="{DynamicResource SomeResource}" Stretch="None"/>
</Grid>
</Button>
Что было бы правильным решением?
Благодарим за помощь!
В части зрения i.e на стороне пользовательского интерфейса, как вы определяете, недоступно ли изображение в динамическом ресурсе? –
Вы пробовали использовать [FallbackValue] (https://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.fallbackvalue (v = vs.110) .aspx)? – lena
FallbackValue недоступен, так как нет привязки. – tabina