Próbowałem połączyć dwa ciągi jako zawartość Button
w XAML. Ale to nie działa. Starałem się jak poniżej:jak połączyć zawartość przycisku w XAML?
<Button Content=""String1"+{DynamicResource String2}"/>
Próbowałem połączyć dwa ciągi jako zawartość Button
w XAML. Ale to nie działa. Starałem się jak poniżej:jak połączyć zawartość przycisku w XAML?
<Button Content=""String1"+{DynamicResource String2}"/>
użycie MultiBinding pojęcie. this To ci pomoże.
Można użyć MultiBinding
z StringFormat
parametru:
<Button>
<MultiBinding StringFormat="{}{0}{1}">
<Binding>
<Binding.Source>
<sys:String> String1 </sys:String>
</Binding.Source>
</Binding>
<Binding Path="{DynamicResource String2}" />
</MultiBinding>
</Button>
Jak o wiązaniu zawartości do wartości w modelu widoku lub modelu, a następnie można ustawić to dużo więcej łatwo do tego, co chcesz dynamicznie i mieć o wiele większą kontrolę nad nim. Oczywiście trzeba by być przy użyciu MVVM ..
jednak odpowiedź 2kay jest lepiej ...
prosty, niezbyt skalowalny sposób na radzenie sobie z tym byłoby:
<Window x:Class="AdHocWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<System:String x:Key="String2">String2</System:String>
</Window.Resources>
<Grid>
<Button>
<TextBlock>
<System:String>String1 </System:String>
<TextBlock Text="{DynamicResource String2}"/>
</TextBlock>
</Button>
</Grid>
</Window>
TextBlocks to w zasadzie małe dokumenty przepływu, więc są bardzo elastyczne.
Kod w XAML jest następujący:
<Button>
<TextBlock>
<Run Text="String1"/>
<Run Text="{DynamicResource String2}"/>
</TextBlock>
</Button>
To nie działa. Otrzymuję String2 od ResourceDictionary. –