PDA

View Full Version : نحوه شناسایی استایل به منو و زیر منوها به طور یکسان



کامبیز اسدزاده
دوشنبه 26 فروردین 1392, 16:41 عصر
با سلام

دوستان من به وسیله کد زیر استایل مورد نظرم رو به منو ها به صورت تک تک میتونم اضافی کنم ولی مشکلم اینه که در منو ها بعضی از زیر منو ها به وسیله کد بعد از اجراء برنامه نمایش داده میشوند که استایل من شامل این منو ها نمیشود.

راهی روشی چیزی هست که استایل رو طوری تعریف کنم که شامل همش بشه ؟



Style="{DynamicResource SimpleMenuItem}"

aghayex
دوشنبه 26 فروردین 1392, 17:25 عصر
عکس شو بزار .
در ضمن استایل برای تمام شی هست

کامبیز اسدزاده
دوشنبه 26 فروردین 1392, 17:34 عصر
خب من در مثال زیر استایل رو دونه دونه به منوهام ستش کردم...




<Menu x:Name="MainMenu">
<MenuItem x:Name="menu1" Style="{DynamicResource MenuStyle}" Header="_Unknown_" Height="23" UseLayoutRounding="True">
<MenuItem x:Name="menu2" Style="{DynamicResource MenuStyle}" Header="Open File" IsEnabled="False" Padding="5,3,2,3"/>
<Separator/>
<MenuItem x:Name="menu3" Style="{DynamicResource MenuStyle}" Header="Safe Mode" IsEnabled="False" Padding="5,3,2,3"/>
<Separator/>
<MenuItem x:Name="menu4" Style="{DynamicResource MenuStyle}" Header="Connect to" IsEnabled="False" Padding="5,3,2,3"/>
<Separator/>
<MenuItem x:Name="menu5" Style="{DynamicResource MenuStyle}" Header="Restart" Click="Restart_Click" Padding="5,3,2,3"/>
<MenuItem x:Name="menu6" Style="{DynamicResource MenuStyle}" Header="Sleep" IsEnabled="False" Padding="5,3,2,3"/>
<MenuItem x:Name="menu7" Style="{DynamicResource MenuStyle}" Header="Shutdown" Click="Shutdown_Click" Padding="5,3,2,3"/>
</MenuItem>
</Menu>



حالا تا اینجا مشکلی ندارم ولی یه مشکل خاصی دارم !!! این تعداد منو تا اینجا به صورت دستی ساخته شده ولی من بعد از اجراء برنامه یه چند تا زیر منوی دیگه تولید میکنم مثلا menu8 , menu9 , menu10 به این صورت...

حالا اگه دقت کنید من استایل هلارو دونه دونه به منوهای بالا دادم ولی برای منوهای menu8,menu9,menu10 استایل هارو نمیتونم بدم چکار کنم ؟ روشی لازمه که کلی باشه !

aghayex
دوشنبه 26 فروردین 1392, 23:23 عصر
دوست عزیز کنترل اصلی شما شی Menu هست نه MenuItem و استایل رو باید به کنترل Menu ست کنی نه تمام MenuItem ها
در خصوص استایل Menu , اگه خودت استایلشو طراحی کردی باید یه استایل هم برای MenuItem طراحی کنی و در استایل Menu اونو معرفی کنی و در نهایت این استایل Menu هست که در ویندوزت به کنترل Menu ست میشه.

کامبیز اسدزاده
سه شنبه 27 فروردین 1392, 15:28 عصر
دوست عزیز کنترل اصلی شما شی Menu هست نه MenuItem و استایل رو باید به کنترل Menu ست کنی نه تمام MenuItem ها
در خصوص استایل Menu , اگه خودت استایلشو طراحی کردی باید یه استایل هم برای MenuItem طراحی کنی و در استایل Menu اونو معرفی کنی و در نهایت این استایل Menu هست که در ویندوزت به کنترل Menu ست میشه.

استایل رو به منو اصلی ست میکنم خطا میده اصلا قبول نمیکنه.... چجوری ست کنم که شامل منو و زیر منو هاش بشه؟

aghayex
سه شنبه 27 فروردین 1392, 18:19 عصر
کلا برا منو شما دو استایل باید داشته باشید یکی برا menu و دیگری برا menuitem و استایل menuitem رو باید در استایل menu ست کنید و اگه هر کدوم از اینا رو شما ندارید خوب خطا می گیره .
احتمال می دم این استایل شما یه استایل menuitem هست و طبیعی هست که نمی تونی به یه منو ست کنی

رضا عربلو
شنبه 31 فروردین 1392, 09:25 صبح
از TargetType در تعریف استایلت استفاده کن و اونرو در یک resource dictionary قرار بده در اینصورت تمام MenuItemهات استیل مورد نظرت رو می گیرن

کامبیز اسدزاده
پنج شنبه 05 اردیبهشت 1392, 20:25 عصر
از TargetType در تعریف استایلت استفاده کن و اونرو در یک resource dictionary قرار بده در اینصورت تمام MenuItemهات استیل مورد نظرت رو می گیرن

میشه لطفا یه مثال بزنید ؟ من زیاد با این سبک آشنا نیستم :(

رضا عربلو
شنبه 07 اردیبهشت 1392, 08:36 صبح
این هم مثال خود مایکروسافت
http://msdn.microsoft.com/en-us/library/ms747082%28v=vs.85%29.aspx

منضورم این قسمتش است "


<!-- MenuItem Style -->

<Style x:Key="{x:Type MenuItem}" TargetType="MenuItem">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Style.Triggers>
<Trigger Property="Role" Value="TopLevelHeader">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}"/>
<Setter Property="Grid.IsSharedSizeScope" Value="true"/>
</Trigger>
<Trigger Property="Role" Value="TopLevelItem">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.TopLevelItemTemplateKey}}"/>
</Trigger>
<Trigger Property="Role" Value="SubmenuHeader">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/>
</Trigger>
<Trigger Property="Role" Value="SubmenuItem">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.SubmenuItemTemplateKey}}"/>
</Trigger>
</Style.Triggers>
</Style>