Я использую Silverlight 5, и в одном из моих страниц у меня есть StackPanel, чьи дети я стиль следующим образом:Повторное использование стилей для детей панели в Silverlight
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="FontSize" Value="12"></Setter>
</Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="DarkRed"></Setter>
</Style>
</StackPanel.Resources>
<TextBlock Text="TextBlockText:"></TextBlock>
<Button Content="FirstButton" Command="{Binding SetLayout}" CommandParameter="FirstOnly"/>
<Button Content="FirstSecondButton" Command="{Binding SetLayout}" CommandParameter="FirstSecond"/>
</StackPanel>
У меня есть еще один StackPanel в на той же странице, как я могу повторно использовать этот стиль без копирования и вставлять его снова и снова?
Извините за поздний ответ, извините, что мне было очень долго отвечать, хотя ваш ответ был быстрым. Первый вариант, к сожалению, не дает эффекта, который я хочу, а второй вариант - это то, чего я хочу избежать, потому что это означает, что я должен вставить атрибут для каждого дочернего атрибута. –
Третий вариант выглядит неплохо, но я столкнулся с некоторыми проблемами с его реализацией. Что я сделал, так я создал ResourceDictionary в теге UserControl.Resources главной страницы и дал ему ключ с именем x: Key = "StackPanelResources", после чего я установил атрибут Resources в стековых панелях {StaticResource StackPanelResources}. Однако я получаю исключение во время выполнения, которое говорит мне, что объект с ключом/именем «StackPanelResources» не найден. Что я делаю не так? –
Собственно, 'ResourceDictionary', как правило, представляет собой отдельный файл, который вы использовали бы, чтобы централизованно распределить все ваши шаблоны, которые вы хотите получить глобально во всем приложении. http://msdn.microsoft.com/en-us/library/cc903952%28v=vs.95%29.aspx –