화요일, 3월 16, 2010
윈도우폰 7 개발환경 공개
라벨: 실버라이트, 윈도우폰, 윈도우폰7, Silverlight, Study, Visual Studio 2010, Windows Phone, XNA, XNA Game Studio 4.0
실버라이트4 RC와 블렌드 4 베타 공개
라벨: 블렌드, 블렌드 4, 실버라이트, 실버라이트 4, Silverlight, Silverlight 4, Study, Visual Studio 2010
목요일, 2월 11, 2010
Visual Studio 2010 RC

드디어 Visual Studio 2010 RC가 공개되었습니다. MSDN에 먼저 공개되었고 오늘 일반에 공개되어 모두 사용 할 수 있습니다.
Beta 2에서 RC버전으로 기능상으로는 특별히 추가된 것은 없고 버그 수정과 성능 향상에 많은 공을 들인 것 같습니다. RC가 발표 되자마자 여기저기서 사용기가 올라오고 있는데 퍼포먼스 향상에 많은 찬사를 보내고 있습니다.
알려진 것처럼 VS2010에는 IDE에 WPF가 일부 사용되었는데 하드웨어 가속을 사용하여 렌더링을 함으로써 퍼포먼스에 도움이 되고 있습니다.
RC버전의 성능에 만족을 느끼고 VS2008을 바로 삭제 했다고 하는 사람도 있을 정도로 완성도가 많이 좋아졌으나 아쉬운점도 많이 있습니다.
기본적인 요소는 대부분 포함되었지만 Silverlight 4 Beta 개발을 하기 위해선 여전히 VS2010 Beta 2 버전을 사용해야 합니다. RC 버전에는 기본적으로 Silverlight 3 개발 환경만 포함되었고 Silverlight 4는 이전과 마찬가지로 따로 Tool을 설치해야 하는데 아직 RC에 지원되는 Tool이 발표되지 않았습니다.
그리고 또 다른 아쉬운 점은 모바일 개발환경도 포함되지 않았습니다.
일반적으로 RC 단계에서는 모든 기능요소가 포함되고 최종 마무리 작업을 해서 RTM버전이 나오는데 VS2010 RC에는 아직 포함되지 않은 부분이 있습니다.
모바일 개발 환경 같은 경우는 윈도우 모바일 7 환경이 포함 될 가능성도 있어서인지(확실한 정보는 아닙니다. 추측입니다 ^^;) 아직까진 전혀 모습을 볼 수 없는게 많이 아쉽습니다. 그렇지만 기본적인 개발환경 지원이나 성능 등에서는 많은 사람들이 합격점을 주고 있으니 Beta에서 망설였던 분들도 사용해보시면 좋을 것 같습니다.
라벨: .NET, .NET Framework 4.0, 개발, 실버라이트, 실버라이트 4, 윈도우 모바일, Silverlight, Silverlight 4, Study, Visual Studio 2010, Visual Studio 2010 RC, vs2010
월요일, 11월 23, 2009
Visual Studio 2010과 Blend Preview for .NET 4 통합 문제

1: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Expression\Blend\VS]2: "BlendLaunchPath"="\"c:\\Program Files\\Microsoft Expression\\Blend Preview for .NET 4 \\Blend.exe\""

라벨: .NET, .NET 4, 블렌드, 실버라이트, blend, Blend 3, Blend Preview for .NET 4, Expression, Silverlight, Silverlight 4, Study, Visual Studio, Visual Studio 2010, vs2010
목요일, 11월 19, 2009
Silverlight 4 Beta 공개!
- Visual Studio 2010 Beta 2 or Visual Web Developer Express 2010 Beta 2 (pick one)
- Silverlight Tools for Visual Studio 2010
- Expression Blend for .NET 4 Preview – for authoring Silverlight 4 and WPF 4 applications
- WCF RIA Services (formerly .NET RIA Services) (NOTE: This is actually included in the SL Tools for Silverlight 4)
- Silverlight 4 SDK CHM (offline documentation) – optionally online here as well
- Updated Silverlight Toolkit for Silverlight 4
- Developer runtimes: Windows and Mac platforms
- Silverlight 4 SDK only – not needed if you install the tools above
- Silverlight Media Framework – a new, Open Source media player framework for you to use.
라벨: 실버라이트, 실버라이트 4, pdc09, Silverlight, Silverlight 4, Study, Visual Studio 2010, vs2010
수요일, 10월 28, 2009
VS2010 베타2의 WPF & Silverlight 디자이너 성능 향상 팁
라벨: .NET, Cider, Silverlight, Study, Visual Studio 2010, vs2010, WPF
목요일, 10월 22, 2009
VS 2010 Beta 2 설치 과정에서 Silverlight SDK 문제

라벨: sdk, Silverlight, Silverlight 3, Silverlight SDK, Study, Visual Studio 2010, vs2010
화요일, 10월 20, 2009
Visual Studio 2010 Beta 2 공개

Visual Studio 2010 Beta 2부터 제품군 변화와 함께 로고도 새롭게 바뀌었습니다.


· Microsoft® Visual Studio® 2010 Professional
· Microsoft® Visual Studio® 2010 Professional with MSDN
· Microsoft® Visual Studio® 2010 Premium with MSDN
· Microsoft® Visual Studio® 2010 Ultimate with MSDN
제품군은 Team Suite 버전이 Ultimate로 바뀌었고 Professional 버전은 그대로 남습니다.
그 중간 버전들이 Premium으로 통합되었고 무료인 Express 버전 역시 제공됩니다.

Visual Studio 2010 Beta 2의 초기 화면은 위와 같습니다. Beta 1에서 문제되었던 성능이나 기타 여러 문제점들이 많이 개선되었다고 합니다.
앞으로 제 블로그나 VSTS2010 공식 블로그를 통해서 자세한 내용을 알아보도록 하겠습니다.
많은 기대 해주세요~
라벨: MSDN, Study, Visual Studio 2010, vs2010, vsts2010
화요일, 5월 19, 2009
Visual Studio 2010 Beta 1 스크린샷




라벨: Study, Visual Studio 2010, vs2010, vsts2010
Visual Studio 2010 Beta 1 MSDN에 공개

방금전에 Visual Studio 2010 Beta 1이 .NET Framework 4.0 Beta 1과 함께 MSDN에 공개되었습니다.
MSDN 구독자들은 확인해보세요!
일반 사용자에게는 우리나라 시간으로 21일 새벽쯤에 공개됩니다.
라벨: .NET, .net framework, .NET Framework 4.0, Study, Visual Studio 2010, vsts2010
목요일, 4월 23, 2009
WPF Features Preview (3) - Styling the DataGrid
WPF Features Preview (1) - DataGrid
WPF Features Preview (2) - DatePicker
맨 처음 초기 어플리케이션을 보면 스타일이 적용되어 멋지게 보입니다. DataGrid를 적용하여 수정된 버전은 좀 더 기능적이긴 하지만 밋밋하고 보기엔 좀...
이번에는 DataGrid에 스타일을 주어서 컬러풀하고 비주얼적으로 멋지게 만들어 보도록 하겠습니다.
프로젝트를 열고 MainWindow.xaml 파일을 열어서 DockPanel 부분을 보면 뭔가 스타일이 적용된것을 볼 수 있습니다. 이 중에서 몇가지 brush와 GridViewColumnHeader와 ListViewItem 스타일을 DataGrid 스타일에 적용해 보도록 하겠습니다.
DataGrid의 스타일 프로퍼티
1. CellStyle - 각각의 cell에 사용되는 스타일 (DataGridCell)
2. RowStyle - row에 사용되는 스타일 (DataGridRow)
3. ColumnHeaderStyle - header bar에 사용되는 스타일 (DataGridColumnHeader)
사용자가 grid와 상호작용하는 것에 대한 프로퍼티
1. SelectionMode - 단일선택과 확장된 선택에 대한 모드
2. SelectionUnit - 무엇이 선택되는가에 대한 설정 (FullRow vs Cell vs CellOrRowHeader)
3. GridLinesVisibility - cell 주변의 라인에 대한 속성
4. VerticalGridLinesBrush - 수직 라인에 대한 색상
5. HorizontalGridLinesBrush - 수평 라인에 대한 색상
먼저 TargetType으로 스타일이 적용될 타입에 대해 설정해줍니다.
TargetType 값에 GridViewColumnHeader를 dg:DataGridColumnHeader로 바꿔줍니다.
그리고 ListViewItem도 dg:DataGridRow로 바꿔줍니다.
변경된 xaml 코드는 아래와 같습니다.
<Style x:Key="dgHeaderStyle" TargetType="dg:DataGridColumnHeader">
<Setter Property="Background" Value="{StaticResource dgHeaderBrush}" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="{StaticResource dgHeaderBorderBrush}" />
</Style>
<Style x:Key="dgRowStyle" TargetType="dg:DataGridRow">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Background" Value="White" />
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#FFD0D0E0" />
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="LightGoldenrodYellow" />
</Trigger>
</Style.Triggers>
</Style>
DataGrid가 정의된 곳에는 ColumnHeaderStyle과 RowStyle 속성을 설정해줍니다.
<dg:DataGrid x:Name="dg" ItemsSource="{Binding}" Margin="10"
AutoGenerateColumns="False"
Background="#80909090" AlternationCount="2"
ColumnHeaderStyle="{StaticResource dgHeaderStyle}"
RowStyle="{StaticResource dgRowStyle}">
이제 어플리케이션을 실행해보면 스타일이 적용되어 이전과 다른 모습을 볼 수 있습니다.
이제 몇가지 grid에 대한 속성을 주도록 하겠습니다.
1. Extended 선택 모드 적용
2. SelecionUnit을 FullRow로 설정
3. GridLinesVisibility를 All로 설정
4. VerticalGridLinesBrush를 DarkGray로 설정
<dg:DataGrid x:Name="dg" ItemsSource="{Binding}" Margin="10"
AutoGenerateColumns="False"
Background="#80909090" AlternationCount="2"
ColumnHeaderStyle="{StaticResource dgHeaderStyle}"
RowStyle="{StaticResource dgRowStyle}"
SelectionMode="Extended"
SelectionUnit="FullRow"
GridLinesVisibility="All"
VerticalGridLinesBrush="DarkGray">
또 몇가지 설정을 해서 header 스타일을 주도록 해보겠습니다.
1. BorderTickness를 1로 주어서 border를 볼 수 있도록
2. pixel snapping을 활성화 (SnapsToDevicePixels="True")
3. 컨텐트 horizontal 정렬 (HorizontalContentAlignment="Center")
4. MinWidth="0" MinHeight="30" 으로 설정
5. 기본 커서 모양을 Hand로 설정
<Style x:Key="dgHeaderStyle" TargetType="dg:DataGridColumnHeader">
<Setter Property="Background" Value="{StaticResource dgHeaderBrush}" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="{StaticResource dgHeaderBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="MinHeight" Value="30" />
<Setter Property="Cursor" Value="Hand" />
</Style>
다시 컴파일해서 실행해보면 좀 더 직관적으로 보기 쉽게 스타일 적용이 된 것을 볼 수 있습니다.
다음으로는 Cell 자체에 대한 스타일 적용을 해보겠습니다. Cell의 컨텐트가 가운데로 오고 필요할 때 포커스가 적용되면 좀 더 편리할 것 같은데 이것을 해보도록 하겠습니다.
새로운 스타일 속성을 DockPanel.Resources에 추가하도록 합니다.
1. TargetType을 dg:DataGridCell로 설정
2. 중요한 속성은 기본 DataGridCell을 따르기 위해 BasedOn 프로퍼티 설정
"{StaticResource{x:Type dg:DataGridCell}}"
3. SnapsToDevicePixels를 "True"로 설정
4. VerticalAlignment를 "Center"로 설정
5. Trigger 컬렉션 추가 - 셀이 선택되었을 때 background/foreground 색상 변경
6. <Style.Triggers> 부분에 IsSelected 프로퍼티를 True로 설정하고
a. Background를 Transparent로
b. BorderBrush를 Transparent로
c. Foreground를 Black으로
7. 두번째 trigger를 추가하고 IsKeyboardFocusWithin="True" 프로퍼티에
a. Background에 "{StaticResource whiteBackBrush}" 리소스
b. BorderBrush에 "{DynamicResource{x:Static dg:DataGrid.FocusBorderBrushKey}}" 리소스
c. Foreground에 Black
<Style x:Key="dgCellStyle" TargetType="dg:DataGridCell"
BasedOn="{StaticResource {x:Type dg:DataGridCell}}">
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="VerticalAlignment" Value="Center" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="Background" Value="{StaticResource whiteBackBrush}" />
<Setter Property="BorderBrush"
Value="{DynamicResource {x:Static dg:DataGrid.FocusBorderBrushKey}}" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
그리고 DataGrid 속성에 CellStyle 프로퍼티값을 줍니다.
<dg:DataGrid x:Name="dg" ItemsSource="{Binding}" Margin="10"
AutoGenerateColumns="False"
Background="#80909090" AlternationCount="2"
ColumnHeaderStyle="{StaticResource dgHeaderStyle}"
RowStyle="{StaticResource dgRowStyle}"
CellStyle="{StaticResource dgCellStyle}"
SelectionMode="Extended"
SelectionUnit="FullRow"
GridLinesVisibility="All"
VerticalGridLinesBrush="DarkGray">
이제 Cell을 클릭해보면 색이 적용되어 하이라이트 되는것을 볼 수 있습니다.
마지막으로 RowDetail 속성을 설정하도록 하겠는데 위에서 했던 방법과 비슷하니 자세한 설명은 생략하겠습니다. xaml 코드를 보면 어렵지 않게 이해 할 수 있을 것입니다.
<dg:DataGrid x:Name="dg" ItemsSource="{Binding}" Margin="10" ...
VerticalGridLinesBrush="DarkGray"
RowDetailsVisibilityMode="VisibleWhenSelected">
<dg:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="20,0,0,0">
<TextBlock />
<TextBox />
</StackPanel>
</DataTemplate>
</dg:DataGrid.RowDetailsTemplate>
TextBlock 속성
<StackPanel Orientation="Horizontal" Margin="20,0,0,0">
<TextBlock Text="Category:" VerticalAlignment="Center" FontWeight="Bold" />
<TextBox />
TextBox 생성
<dg:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="20,0,0,0">
<TextBlock Text="Category:" VerticalAlignment="Center" FontWeight="Bold" />
<TextBox Text="{Binding Category}" Margin="10,5" MinWidth="100">
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="BorderBrush" Value="{x:Null}" />
<Setter Property="Background" Value="{x:Null}" />
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush"
Value="{x:Static SystemColors.WindowFrameBrush}" />
<Setter Property="Background"
Value="{x:Static SystemColors.WindowBrush}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush"
Value="{x:Static SystemColors.WindowFrameBrush}" />
<Setter Property="Background"
Value="{x:Static SystemColors.WindowBrush}" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</StackPanel>
</DataTemplate>
</dg:DataGrid.RowDetailsTemplate>
이제 모든 스타일 적용이 끝났습니다. 실행을 해보면 위에서 적용한 스타일이 적용되어 처음의 DataGrid보다 훨씬 보기도 좋고 스타일이 좋아진것을 알 수 있습니다.
지금까지 DataGrid에 대해 알아보았는데 다음에는 역시 새롭게 추가된 Ribbon 컨트롤에 대해 알아보겠습니다.
WPF에서도 기존의 메뉴와 툴바를 벗어나서 새로운 Ribbon 스타일을 적용할 수 있는데 이것 역시 어렵지 않게 할 수 있으니 기대해주세요.
라벨: 김태균, 스타일, DataGrid, Study, style, Visual Studio 2010, WPF, WPF4, WPFToolkit
에 가입 글 [Atom]


OpenInBlendRegHack.zip
CheckbookManager.zip