WPF 응용 프로그램을 만들 때 매우 빠르게 XAML이 부풀리기 시작합니다.XAML을 스타일에 적용하기위한 전략은 무엇입니까?
그 다음 은 HTML/CSS 방식에서 XAML/스타일 문제에 접근하여 반복 코드를 찾고이를 Window.Resources 섹션에 넣은 스타일로 채 웁니다.
다른 사람들이이 방법을 사용하고 있습니까? 아니면 XAML에서 더 좋은 방법이 있습니까? 그냥 아래의 두 블록은 두 개의 작은 단어로 차이가있는 것 같습니다. 기능적 사용자 컨트롤 (여기는 왼쪽 메뉴 임)에 넣을 수 있으므로 내 메뉴에 25 개의 요소가있을 때 이름과 클릭 타겟과 같은 25 행만 가질 수 있습니다.
또는 MVVM으로 이동하면이 문제가 DataBinding (자체적으로 하드 코딩 된 프로토 타입 임)으로 처리되므로 내 메뉴 항목의 이름을 내 컬렉션에 유지할 수 있습니다. ViewModel 그리고 ItemsControl에 메뉴를 동적으로 생성합니까?
은 부풀린 XAML 파일로 WP30 응용 프로그램의 실제 내용은입니까?
WPF 응용 프로그램을 만들 때 어떤 종류의 XAML 스타일 전략이 있습니까?
Window.Resources (파일 상단) :
<Window.Resources>
<Style x:Key="Link" TargetType="Button">
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Foreground" Value="#555"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<TextBlock TextDecorations="Underline"
Text="{TemplateBinding Content}"
Background="{TemplateBinding Background}"/>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
현재 XAML : 간단한
<Expander HorizontalAlignment="Left" Header="File" VerticalAlignment="Top" ExpandDirection="Down" Width="200" Padding="2">
<Expander.Background>
<LinearGradientBrush>
<GradientStop Color="#bbb" Offset="0"/>
<GradientStop Color="#ccc" Offset="1"/>
</LinearGradientBrush>
</Expander.Background>
<Border CornerRadius="5">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="#ccc" Offset="0"/>
<GradientStop Color="#bbb" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Top">
<Button Click="buttonClose_Click"
Style="{StaticResource Link}"
Margin="10 3 3 3"
Content="Close">
</Button>
</StackPanel>
</Border>
</Expander>
<Expander HorizontalAlignment="Left" Header="Customers" VerticalAlignment="Top" ExpandDirection="Down" Width="200" Padding="2">
<Expander.Background>
<LinearGradientBrush>
<GradientStop Color="#bbb" Offset="0"/>
<GradientStop Color="#ccc" Offset="1"/>
</LinearGradientBrush>
</Expander.Background>
<Border CornerRadius="5">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="#ccc" Offset="0"/>
<GradientStop Color="#bbb" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top">
<Button Click="btnAppPage_Click"
Tag="CustomerAdd"
Style="{StaticResource Link}"
Margin="10 3 3 3"
Content="Create Customer"/>
</StackPanel>
</Border>
</Expander>
저는 UserControls를 사용하여 페이지의 왼쪽에있는 메뉴가 usercontrol이지만 페이지의 내용을 조금씩 반복해서 표시하지는 않지만 여기에 설명 된대로 사용자 정의 컨트롤을 의미합니까? http : //msdn.microsoft.com/en-us/magazine/cc163421.aspx –