2015-12-14 2 views
1

Я пытаюсь создать стиль выполнения, который можно повторно использовать.WPF, используя стиль, который содержит другой стиль

Итак, идея здесь очень проста. У меня уже есть стиль с целевым типом ProgressBar, и это просто крутой круг, который заполняется, начиная с 0-100%. Однако, чтобы сделать его повторно используемым и модульным, я не хочу жестко кодировать текст, который идет вместе с ним, - он должен быть необязательным.

Так что я хочу создать другой стиль, который включает текст «Загрузка ... X/Y MB». Для этого я принимаю значение для X, максимум для Y и тег для устройства. Я хочу включить одну и ту же прядильную кругу для графической части слева. Как я могу это сделать? С свойством BasedOn, я думаю, вы можете только установить что-то уже там, чтобы быть другим. Что делать, если я хочу добавить дополнительные элементы (например, текстовые блоки в этом случае)?

ответ

0

Если только текстовое значение дифференцируется, то внутри стиля вы можете привязать значение propertytie к свойству родителя, например тегу, где в каждом отдельном стиле или элементе вы настраиваете его на определенное требование.

<Window.Resources> 
    <Style x:Key="FirstButtonStyle" TargetType="Button"> 
     <Setter Property="Content" Value="1"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <ContentPresenter/> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
    <Style x:Key="SecondButtonStyle" TargetType="Button" BasedOn="{StaticResource FirstButtonStyle}"> 
     <Setter Property="Content" Value="2"/> 
    </Style> 
</Window.Resources> 

<StackPanel> 
    <Button Style="{StaticResource FirstButtonStyle}"/> 
    <Button Style="{StaticResource SecondButtonStyle}"/> 
</StackPanel> 

Результатом является 1 и 2.

Если ваша цель состоит, чтобы придать некоторый UI элемент в стиле, то нет такого варианта, увы. Стиль нужно переписать еще раз.

+0

Я вижу. То, что я намереваюсь, состоит в том, чтобы иметь возможность добавлять все, что угодно на любой стороне, в основном иметь другой элемент управления, который может использовать все анимации, которые я сделал для этого элемента. Это было бы частью другого контроля. –

+0

Могу ли я вставлять этот анимированный круг прогресса в другой элемент управления с помощью contentcontrol? –

+0

У меня нет прозрения, о котором вы говорите. Не могли бы вы уточнить? – Maximus

Смежные вопросы