Column | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar column

Windows 10 UWP uygulamasında Page.Resources içinde Style kullanmak

31 January 2016 Yorum yapılmamış

Windows 10 UWP uygulaması yazarken bazen ekranda stil verdiğimiz bir nesnenin stilini aynı tipteki diğer nesnelere de uygulamak isteriz.

Böyle bir durumda içinde bulunduğumuz Page‘in Resources kısmına stillerimizi ortak bir şekilde tanımlamak ve sayfanın içinde aynı tipteki nesnelerde kullanmak iyi bir çözüm yolu olabilir.

Bu makalede örnek olarak, saati gösterecek veya belli bir süreden geri sayım yapabilecek aşağıdaki sayfayı UWP ile tasarlayacağız;

Öncelikle sayfanın kodlarını aşağıdaki hale getirip temizleyelim;

<Page
	x:Class="PageResourceStyleOrnek.MainPage"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:local="using:PageResourceStyleOrnek">

</Page>

Sayfaya önce bir StackPanel nesnesi, StackPanel nesnesinin içerisine bir Grid nesnesi, Grid nesnesinin ColumnDefinitions özelliğine de 5 adet ColumnDefinition ekliyoruz.

Aynı şekilde Grid nesnesinin içerisine her Column‘a birer tane denk gelecek şekilde Border nesneleri ekliyoruz, Border nesnelerinin içerisine TextBlock veya StackPanel içerisinde TextBlock ekliyoruz.

Border nesnelerini kullanmamızın sebebi, TextBlock nesnesi tek başına arkaplan rengine sahip olamaz, eğer Border nesnesinin içerisine koyarsak, Border nesnesine verdiğimiz Background özelliği sayesinde bir arkaplan rengi olabilir.

<StackPanel Margin="10">
	<Grid>
		<Grid.ColumnDefinitions>
			<ColumnDefinition Width="*" />
			<ColumnDefinition Width="Auto" />
			<ColumnDefinition Width="*" />
			<ColumnDefinition Width="Auto" />
			<ColumnDefinition Width="*" />
		</Grid.ColumnDefinitions>

		<Border Grid.Column="0">
			<StackPanel Orientation="Horizontal">
				<TextBlock Text="0" />
				<TextBlock Text="0" />
			</StackPanel>
		</Border>
		<Border Grid.Column="1">
			<TextBlock Text=":" />
		</Border>
		<Border Grid.Column="2">
			<StackPanel Orientation="Horizontal">
				<TextBlock Text="0" />
				<TextBlock Text="0" />
			</StackPanel>
		</Border>
		<Border Grid.Column="3">
			<TextBlock Text=":" />
		</Border>
		<Border Grid.Column="4">
			<StackPanel Orientation="Horizontal">
				<TextBlock Text="0" />
				<TextBlock Text="0" />
			</StackPanel>
		</Border>

	</Grid>
</StackPanel>

Böylece tasarım anında ekranımız aşağıdaki gibi gözükecek;

İstediğimiz ekran tasarımına henüz sahip değiliz, fakat yaklaştık. Sayfada birçok nesnenin aynı şekilde gözükmesini istiyoruz, eğer hepsinde aynı özelliklere aynı değerleri verecek olursak aslında bunu elde edebiliriz. Fakat daha sonra değişiklik yapması zor olur, kodun karmaşıklığı artar, vs.

Sayfadaki Page elementinin içerisine Resources elementi ekler ve içerisine istediğimiz nesnelerin ortak sahip olacağı stilleri yazarsak bu problemlerin önüne geçmiş oluruz;

<Page.Resources>
	<Style TargetType="Border">
		<Setter Property="Background" Value="#e67e22" />
		<Setter Property="Padding" Value="10" />
	</Style>
	<Style TargetType="TextBlock">
		<Setter Property="FontSize" Value="20" />
		<Setter Property="Foreground" Value="White" />
		<Setter Property="Margin" Value="10" />
	</Style>
</Page.Resources>

Öncelikle Page.Resources elementini oluşturuyoruz, sayfadaki tüm Border nesneleri için hangi özelliklere hangi değeri atamak istiyorsak, Style elementi içerisinde Setter elementini kullanarak, Property ve Value değerlerine atamalar yapıyoruz.

Aynı şekilde sayfadaki tüm TextBlock nesneleri için de ortak özelliklere değer atamaları yapıyoruz.

Tüm Border ve TextBlock nesnelerine aynı değerleri tek tek atamak yerine, Page.Resources içerisinde ortak bir şekilde atamış olduk. Artık arkarengi değiştirmek istersek, tek bir yerden değiştirebileceğiz;

<Setter Property="Background" Value="#9b59b6" />

Sql Server Tablonun Kolonunun İsmini Değiştirmek

02 March 2010 Yorum yapılmamış

Neden olduğunu anlayamadığım bir sebepten dolayı Microsoft tablodaki bir kolonun ismini değiştirmek için bir tool sunmuyor.

Peki bir kolonun ismini değiştirmek istersek ne yapmalıyız?

MSDN‘de yer alan şu makalede anlatıldığı gibi, sp_rename stored procedure‘ünü kullanabiliriz.

Örneğin;

EXEC sp_rename 'TabloAdi.KolonAdi', 'YeniKolonAdi', 'COLUMN';

Üçüncü parametrenin alabileceği diğer değerler;

COLUMN : Bir kolonun yeniden isimlendirileceğini belirtir
DATABASE : Veritabanının yeniden isimlendirileceği durumda kullanılır
INDEX : Kullanıcının oluşturduğu index yeniden isimlendirileceğinde kullanılır