locked
Где находятся стили элементов RRS feed

  • Вопрос

  • Подскажите, где лежат файлы со стилями элементов графического интерфейса metro app приложений, иногда приходится менять стиль под свою разработку, до этого находил на форумах дефолтные стили, дальше работал с ними, допустим, сейчас мне необходим стиль hyperlinkbutton кнопки, никак не могу найти. Где в windows лежат эти темы?
    3 марта 2013 г. 12:46

Ответы

  • В ьтом топике указано как именять цвета стандартных тем. В вашем случае я делаю следующим образом:

    1. Открываю xaml-страницу в Blend (можно сделать из студии, выбрав файл страницы и в контекстном меню Open in Blend);

    2. В Blend в панели Objets and Timeline выделаю нужный элемент и в контекстном меню выбираю Edit Template - Edit a Copy...

        <Style x:Key="HyperlinkButtonStyle1" TargetType="HyperlinkButton">
        	<Setter Property="Foreground" Value="{StaticResource HyperlinkForegroundThemeBrush}"/>
        	<Setter Property="Background" Value="{StaticResource HyperlinkButtonBackgroundThemeBrush}"/>
        	<Setter Property="BorderBrush" Value="{StaticResource HyperlinkButtonBorderThemeBrush}"/>
        	<Setter Property="BorderThickness" Value="{StaticResource HyperlinkButtonBorderThemeThickness}"/>
        	<Setter Property="Padding" Value="12,4,12,5"/>
        	<Setter Property="HorizontalAlignment" Value="Left"/>
        	<Setter Property="VerticalAlignment" Value="Center"/>
        	<Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/>
        	<Setter Property="FontWeight" Value="SemiBold"/>
        	<Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/>
        	<Setter Property="Template">
        		<Setter.Value>
        			<ControlTemplate TargetType="HyperlinkButton">
        				<Grid>
        					<VisualStateManager.VisualStateGroups>
        						<VisualStateGroup x:Name="CommonStates">
        							<VisualState x:Name="Normal"/>
        							<VisualState x:Name="PointerOver">
        								<Storyboard>
        									<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
        										<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource HyperlinkPointerOverForegroundThemeBrush}"/>
        									</ObjectAnimationUsingKeyFrames>
        								</Storyboard>
        							</VisualState>
        							<VisualState x:Name="Pressed">
        								<Storyboard>
        									<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
        										<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource HyperlinkPressedForegroundThemeBrush}"/>
        									</ObjectAnimationUsingKeyFrames>
        								</Storyboard>
        							</VisualState>
        							<VisualState x:Name="Disabled">
        								<Storyboard>
        									<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
        										<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource HyperlinkDisabledThemeBrush}"/>
        									</ObjectAnimationUsingKeyFrames>
        								</Storyboard>
        							</VisualState>
        						</VisualStateGroup>
        						<VisualStateGroup x:Name="FocusStates">
        							<VisualState x:Name="Focused">
        								<Storyboard>
        									<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhite"/>
        									<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualBlack"/>
        								</Storyboard>
        							</VisualState>
        							<VisualState x:Name="Unfocused"/>
        							<VisualState x:Name="PointerFocused"/>
        						</VisualStateGroup>
        					</VisualStateManager.VisualStateGroups>
        					<Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="3">
        						<ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
        					</Border>
        					<Rectangle x:Name="FocusVisualWhite" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="1.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashArray="1,1"/>
        					<Rectangle x:Name="FocusVisualBlack" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="0.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" StrokeDashArray="1,1"/>
        				</Grid>
        			</ControlTemplate>
        		</Setter.Value>
        	</Setter>
        </Style>
    

    • Помечено в качестве ответа Pharaohhh 3 марта 2013 г. 20:09
    3 марта 2013 г. 19:42
  • Если в решении VS в Configuration Manager в качестве Active solution platform поставить ARM, то Blend тоже не открывает. Для других платформ открывает.
    • Помечено в качестве ответа Pharaohhh 4 марта 2013 г. 8:38
    3 марта 2013 г. 20:29

Все ответы

  • Посмотрите решение в соседнем топике.
    3 марта 2013 г. 19:22
  • В соседнем топике решения не нашлось, что касается файла StandardStyles.xaml, то в моей версии в нем нет hypertextbutton, вот я и хочу узнать, где искать стили для элементов, чтобы переписывать их под себя, если нужно.
    3 марта 2013 г. 19:29
  • В ьтом топике указано как именять цвета стандартных тем. В вашем случае я делаю следующим образом:

    1. Открываю xaml-страницу в Blend (можно сделать из студии, выбрав файл страницы и в контекстном меню Open in Blend);

    2. В Blend в панели Objets and Timeline выделаю нужный элемент и в контекстном меню выбираю Edit Template - Edit a Copy...

        <Style x:Key="HyperlinkButtonStyle1" TargetType="HyperlinkButton">
        	<Setter Property="Foreground" Value="{StaticResource HyperlinkForegroundThemeBrush}"/>
        	<Setter Property="Background" Value="{StaticResource HyperlinkButtonBackgroundThemeBrush}"/>
        	<Setter Property="BorderBrush" Value="{StaticResource HyperlinkButtonBorderThemeBrush}"/>
        	<Setter Property="BorderThickness" Value="{StaticResource HyperlinkButtonBorderThemeThickness}"/>
        	<Setter Property="Padding" Value="12,4,12,5"/>
        	<Setter Property="HorizontalAlignment" Value="Left"/>
        	<Setter Property="VerticalAlignment" Value="Center"/>
        	<Setter Property="FontFamily" Value="{StaticResource ContentControlThemeFontFamily}"/>
        	<Setter Property="FontWeight" Value="SemiBold"/>
        	<Setter Property="FontSize" Value="{StaticResource ControlContentThemeFontSize}"/>
        	<Setter Property="Template">
        		<Setter.Value>
        			<ControlTemplate TargetType="HyperlinkButton">
        				<Grid>
        					<VisualStateManager.VisualStateGroups>
        						<VisualStateGroup x:Name="CommonStates">
        							<VisualState x:Name="Normal"/>
        							<VisualState x:Name="PointerOver">
        								<Storyboard>
        									<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
        										<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource HyperlinkPointerOverForegroundThemeBrush}"/>
        									</ObjectAnimationUsingKeyFrames>
        								</Storyboard>
        							</VisualState>
        							<VisualState x:Name="Pressed">
        								<Storyboard>
        									<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
        										<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource HyperlinkPressedForegroundThemeBrush}"/>
        									</ObjectAnimationUsingKeyFrames>
        								</Storyboard>
        							</VisualState>
        							<VisualState x:Name="Disabled">
        								<Storyboard>
        									<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
        										<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource HyperlinkDisabledThemeBrush}"/>
        									</ObjectAnimationUsingKeyFrames>
        								</Storyboard>
        							</VisualState>
        						</VisualStateGroup>
        						<VisualStateGroup x:Name="FocusStates">
        							<VisualState x:Name="Focused">
        								<Storyboard>
        									<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhite"/>
        									<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualBlack"/>
        								</Storyboard>
        							</VisualState>
        							<VisualState x:Name="Unfocused"/>
        							<VisualState x:Name="PointerFocused"/>
        						</VisualStateGroup>
        					</VisualStateManager.VisualStateGroups>
        					<Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="3">
        						<ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
        					</Border>
        					<Rectangle x:Name="FocusVisualWhite" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="1.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashArray="1,1"/>
        					<Rectangle x:Name="FocusVisualBlack" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="0.5" StrokeEndLineCap="Square" Stroke="{StaticResource FocusVisualBlackStrokeThemeBrush}" StrokeDashArray="1,1"/>
        				</Grid>
        			</ControlTemplate>
        		</Setter.Value>
        	</Setter>
        </Style>
    

    • Помечено в качестве ответа Pharaohhh 3 марта 2013 г. 20:09
    3 марта 2013 г. 19:42
  • Спасибо, это и есть ответ на мой вопрос, но у меня проблема, по которой я изначально не пользовался блендом, у меня 64-битная ос, бленд пишет "Design view is unavailable for x64 and ARM target platforms" :(
    • Изменено Pharaohhh 3 марта 2013 г. 20:00
    3 марта 2013 г. 19:59
  • У меня тоже 64x. А Blend  у вас какой? Должен быть Blend for Visual Studio 2012.
    3 марта 2013 г. 20:05
  • У меня Blend for Visual Studio 2012 5.0.30709
    3 марта 2013 г. 20:10
  • Если в решении VS в Configuration Manager в качестве Active solution platform поставить ARM, то Blend тоже не открывает. Для других платформ открывает.
    • Помечено в качестве ответа Pharaohhh 4 марта 2013 г. 8:38
    3 марта 2013 г. 20:29
  • Кирилл, спасибо за ответ, да, я так понимаю, что ошибка из-за того, что у меня выбран режим не Any CPU, а x64) В проекте я использую sqlite базу данных, все настраивал так, как написано по ссылке http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspx , и пришлось выбирать архитектуру процессора при сборке, или x64 или ARM, на Any CPU ругался. Замкнутый круг получается какой-то)
    4 марта 2013 г. 8:38