ورود

View Full Version : سوال: ایجاد tooltip سفارشی



Mori Bone
دوشنبه 07 مهر 1393, 13:07 عصر
سلام خدمت همه ی عزیزان و دوستان اینترنتی:بوس:
124020

به عکس بالا توجه کنید. این یه تمپلی از یه tooltip که می خوام هر کنترلی که استایل tooltip رو گرفت، وقتی موس روش رفت این نمایش پیدا کنه و بعد از اینکه موس رفت پنهان بشه.
1- نمی خوام برای هر کنتری یه فرزند بزارم و اون فرزند رو به tooltip اختصاص بدم. به کده زیر توجه کنید:
<Button Style="{StaticResource tooltip}"/>
حالا هر وقت موس روش رفت اون تول تیپی که عکسش بالاست رو به نمایش بزاره و بعد از اینکه موس از روش رفت بره.
2- اگخ کاربر خواست بتونه یه عکس هم به تولتیپ اضافه کنه. مثلا یه مشخه بزارم به اسم image که اسم عکس رو بذارم توش(earning,error,info). البته این مشخصه(که اسمش image) رو به تگی که میخوام تولتیپ داشته باشه باید داد.
لطفا بهترین روشی که میتونم به این کار دست پیدا کنم رو بگید یا حداقل راهنماییم کنید.:تشویق:
دوستون دارم.:قلب: کوچیک همتون مری زندیه(mori bone):چشمک:

Mori Bone
سه شنبه 08 مهر 1393, 15:07 عصر
کسی نبود؟:عصبانی++:

desatir7316
سه شنبه 08 مهر 1393, 16:02 عصر
اگه براي وب مي خواي يه نگاهي به اين بنداز : http://getbootstrap.com/javascript/#tooltips
توي قسمت example رو لينك هاي آبي موس رو ببريد، البته اينجا فقط متنه

Mori Bone
سه شنبه 08 مهر 1393, 16:44 عصر
اگه براي وب مي خواي يه نگاهي به اين بنداز : http://getbootstrap.com/javascript/#tooltips
توي قسمت example رو لينك هاي آبي موس رو ببريد، البته اينجا فقط متنه
عزیزم توی تالار wpf نوشتم ها. نه silverlight و نه طراحی وب و نه asp.:لبخند: تحت ویندوز. ممنون از جوابتون

desatir7316
سه شنبه 08 مهر 1393, 16:56 عصر
خدا خيرت بده
ديگه كار نداره، خوب خودت طراحيش كن و نمايشش بده

Mori Bone
سه شنبه 08 مهر 1393, 18:12 عصر
خدا خيرت بده
ديگه كار نداره، خوب خودت طراحيش كن و نمايشش بده
می خوام فقط با xaml باشه و نه wpf code. طراحیش رو بلدم. می خوام بهترین راهش رو بدنم

Mori Bone
چهارشنبه 09 مهر 1393, 09:07 صبح
کسی نبود؟:متعجب:

helpsos
چهارشنبه 09 مهر 1393, 09:36 صبح
قبلا ما میامدیم یه استایل برای تولتیپ ایجاد می کردیم و بعد هم به هر کنترلی که تولتیپ اونرا یه متنی می ذاشتیم اعمال می شد و همه ی کنترل هاشم مثل مخفی شدن و ... از خواص خود tool tip استفاده می شد

Mori Bone
چهارشنبه 09 مهر 1393, 09:38 صبح
قبلا ما میامدیم یه استایل برای تولتیپ ایجاد می کردیم و بعد هم به هر کنترلی که تولتیپ اونرا یه متنی می ذاشتیم اعمال می شد و همه ی کنترل هاشم مثل مخفی شدن و ... از خواص خود tool tip استفاده می شد
یه چیزایی دراین باره دیدم. ولی کامل نبودند. شما نمونه ای دارید

rg_BlackRose
پنج شنبه 10 مهر 1393, 20:21 عصر
سلام

من یک نمونه ساده از طرح شما رو ساختم. شما میتونید تغییراتی بدید و به شکل دلخواه خودتون در بیارید.

این کدها رو درون یک ResourceDictionery قرار بدید.


<!-- رنگ پس زمینه -->
<SolidColorBrush x:Key="BackgroundColor">#FF5FC2FF</SolidColorBrush>


<!-- رنگ نوشته -->
<SolidColorBrush x:Key="ForegroundColor">White</SolidColorBrush>


<!-- طرح مثلث بالایی -->
<Canvas x:Key="Triangle">
<Canvas.Resources />
<Path Data="m 75.036552 35.972526 -16.772909 0.0146 -16.77291 0.0146 8.373813 -14.533064 8.373813 -14.5330646 8.399096 14.5184666 z" Fill="{DynamicResource BackgroundColor}">
<Path.RenderTransform>
<MatrixTransform Matrix="0.77505933,0,0,0.24083015,-15.119853,16.383595" />
</Path.RenderTransform>
</Path>
</Canvas>


<Style x:Key="{x:Type ToolTip}" TargetType="ToolTip">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="HasDropShadow" Value="True" />
<Setter Property="Foreground" Value="{DynamicResource ForegroundColor}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="6" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>


<!-- رسم کردن مثلث بالایی -->
<Rectangle Grid.Row="0"
Width="15"
Margin="5,0,0,0"
HorizontalAlignment="Left">
<Rectangle.Fill>
<VisualBrush Visual="{StaticResource Triangle}" />
</Rectangle.Fill>
</Rectangle>
<Border Name="Border"
Grid.Row="1"
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Background="{DynamicResource BackgroundColor}">


<ContentPresenter Margin="10,4"
HorizontalAlignment="Left"
VerticalAlignment="Top" />
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasDropShadow" Value="true">
<Setter TargetName="Border" Property="CornerRadius" Value="4" />
<Setter TargetName="Border" Property="SnapsToDevicePixels" Value="true" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>




و در App.xaml و در درون تگ Application.Resources کد زیر رو اضافه کنید.

<ResourceDictionary Source="نام ریسورس دیکشنری که در بالا ساختید رو اینجا قرار بدید.xaml" />


این هم عکس در حالت اجرا

124144