Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2012, 03:22   #1
crawter
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 16
По умолчанию Детский вопрос по Expression Blend WPF C#

Всем доброго времени суток!
Вчера начал осваивать WPF и появилась необходимость в создании кнопки с определенным дизайном. Для ее создания я воспользовался программой Microsoft Expression Blend. Создание кнопки прошло успешно, но появился следующий вопрос : как использовать новый контрол в своем проекте ?
Нужно ли было прямо в Expression Blend создать новый проект с соответствующими конртолами и только потом заполнять его необходимым содержимым, или есть возможность импортировать кнопку в отдельный проект, созданный в студии ?
Прошу прощения за столь корявую формулировку вопроса )
Заранее спасибо !
crawter вне форума Ответить с цитированием
Старый 02.11.2012, 10:35   #2
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Цитата:
Сообщение от crawter Посмотреть сообщение
Всем доброго времени суток!
Вчера начал осваивать WPF и появилась необходимость в создании кнопки с определенным дизайном. Для ее создания я воспользовался программой Microsoft Expression Blend. Создание кнопки прошло успешно, но появился следующий вопрос : как использовать новый контрол в своем проекте ?
Нужно ли было прямо в Expression Blend создать новый проект с соответствующими конртолами и только потом заполнять его необходимым содержимым, или есть возможность импортировать кнопку в отдельный проект, созданный в студии ?
Прошу прощения за столь корявую формулировку вопроса )
Заранее спасибо !
Сам перешел на Mono/Gtk#/Linux, но год назад работал в VS с WPF. Стояла задача сделать кнопку в форме стрелочки. Код выглядел так:
Код:
<Style x:Key="Arrow_ButtonStyle" TargetType="{x:Type Button}">
    		<Setter Property="Template">
    			<Setter.Value>
    				<ControlTemplate TargetType="{x:Type Button}">
    					<Grid x:Name="grid" RenderTransformOrigin="0.5,0.5" Margin="0.5,0,14.5,0" HorizontalAlignment="Stretch" Width="Auto">
    						<Grid.RenderTransform>
    							<TransformGroup>
    								<ScaleTransform/>
    								<SkewTransform/>
    								<RotateTransform/>
    								<TranslateTransform/>
    							</TransformGroup>
    						</Grid.RenderTransform>
    						<Grid.ColumnDefinitions>
    							<ColumnDefinition/>
    							<ColumnDefinition Width="0*"/>
    							<ColumnDefinition Width="Auto"/>
    						</Grid.ColumnDefinitions>
    						<VisualStateManager.VisualStateGroups>
    							<VisualStateGroup x:Name="CommonStates">
    								<VisualState x:Name="Normal"/>
    								<VisualState x:Name="MouseOver"/>
    								<VisualState x:Name="Pressed">
    									<Storyboard>
    										<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="grid">
    											<EasingDoubleKeyFrame KeyTime="0" Value="0.87"/>
    										</DoubleAnimationUsingKeyFrames>
    										<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="grid">
    											<EasingDoubleKeyFrame KeyTime="0" Value="0.7"/>
    										</DoubleAnimationUsingKeyFrames>
    										<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" Storyboard.TargetName="grid">
    											<EasingDoubleKeyFrame KeyTime="0" Value="-1"/>
    										</DoubleAnimationUsingKeyFrames>
    										<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="grid">
    											<EasingDoubleKeyFrame KeyTime="0" Value="-1.5"/>
    										</DoubleAnimationUsingKeyFrames>
    									</Storyboard>
    								</VisualState>
    								<VisualState x:Name="Disabled"/>
    							</VisualStateGroup>
    						</VisualStateManager.VisualStateGroups>
                            <ed:BlockArrow Fill="#FF28C841" Margin="0,1,-16,1" Orientation="Right" Grid.ColumnSpan="3" HorizontalAlignment="Stretch" Width="Auto" Height="Auto" VerticalAlignment="Stretch"/>
                            <ContentPresenter RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Stretch" RenderTransformOrigin="0.997,0.274" HorizontalAlignment="Center" Margin="8,8,0,8" d:LayoutOverrides="Height"/>
    					</Grid>
    					<ControlTemplate.Triggers>
    						<Trigger Property="IsFocused" Value="True"/>
    						<Trigger Property="IsDefaulted" Value="True"/>
    						<Trigger Property="IsMouseOver" Value="True"/>
    						<Trigger Property="IsPressed" Value="True"/>
    						<Trigger Property="IsEnabled" Value="False"/>
    					</ControlTemplate.Triggers>
    				</ControlTemplate>
    			</Setter.Value>
    		</Setter>
    	</Style>
Его я засунул в файл "App.xaml", который прикреплен к проекту и затем в программе использовал следующим образом:
Код:
        <Button Content="Транслировать" Height="36" Margin="0,377,300,348" Style="{DynamicResource Arrow_ButtonStyle}" VerticalAlignment="Center" HorizontalAlignment="Right" Width="140" FontSize="18" FontWeight="Normal" FontFamily="Monotype Corsiva" x:Name="toTranslate_button" Click="toTranslate_button_Click" ToolTip="Транслировать" />
После создания указанного элемента управления, в Blend больше не лазил, писал GUI и логику приложения в VS - проблем не было.
Надеюсь, что верно понял вопрос и дал на него полноценный ответ
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.

Последний раз редактировалось Mixim; 02.11.2012 в 10:37.
Mixim вне форума Ответить с цитированием
Старый 09.11.2012, 13:41   #3
crawter
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 16
По умолчанию

большое спасибо )
crawter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF Casper-SC WPF, UWP, WinRT, XAML 3 03.03.2017 15:00
Нарисовать красивое окошко. Expression Design, Expression Blend. Векторное изображение. Casper-SC Фриланс 0 09.02.2011 17:59
Вопрос по WPF? Thugmaster WPF, UWP, WinRT, XAML 3 12.10.2010 18:24
класс Screen в WPF. Есть ли такой? [?] Не добавлять же сборку Forms в WPF Casper-SC Общие вопросы .NET 2 30.07.2010 15:10
Alpha Blend для Image, возможно? Лукманов Александр Мультимедиа в Delphi 5 24.05.2009 20:59