Bunun yerine ToolTip
Örnek bir Popup
kullanmalıdır. Fare TextBox
üzerinde hareket eder ve sürece fare TextBox
veya Popup
<TextBox Name="textBox"
Text="Popup On Mouse Over"
HorizontalAlignment="Left"/>
<Popup PlacementTarget="{Binding ElementName=textBox}"
Placement="Bottom">
<Popup.IsOpen>
<MultiBinding Mode="OneWay" Converter="{StaticResource BooleanOrConverter}">
<Binding Mode="OneWay" ElementName="textBox" Path="IsMouseOver"/>
<Binding RelativeSource="{RelativeSource Self}" Path="IsMouseOver" />
</MultiBinding>
</Popup.IsOpen>
<StackPanel>
<TextBox Text="Some Text.."/>
<DatePicker/>
</StackPanel>
</Popup>
üzerinde olduğu gibi kalır açık mı bir BooleanOrConverter
public class BooleanOrConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
foreach (object booleanValue in values)
{
if (booleanValue is bool == false)
{
throw new ApplicationException("BooleanOrConverter only accepts boolean as datatype");
}
if ((bool)booleanValue == true)
{
return true;
}
}
return false;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}
Güncelleme
için kullandığında Popup
açılır Bunu DataGrid
'daki bir hücre için yap, birkaç seçeneğiniz var. Bunlardan ikisi, DataGridTemplateColumn
için DataTemplates
'un içine Popup
eklemek veya DataGridCell Template
'a ekleyebilirsiniz. İşte daha sonra bir örnek. Size bu bir DatagridRow yapılabilir mi DataGrid
<DataGrid SelectionMode="Single"
SelectionUnit="Cell"
...>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<Popup PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Placement="Right"
IsOpen="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected}">
<StackPanel>
<TextBox Text="Some Text.."/>
<DatePicker/>
</StackPanel>
</Popup>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
<!--...-->
</DataGrid>
üzerinde = "Cell" SelectionMode = "Single" kurmak ve SelectionUnit gerektirecektir veya onun yerine bir TextBlock ile bir TemplateColumn kullanmalıyım? –
Elbette, nasıl çalışmasını istersiniz? Popup ne zaman görünmeli? –
Hücre seçildiğinde açılır pencereyi açmak istiyorum. Bu yapıldığında seçeneklerle küçük bir açılır pencere mevcut olacaktır. –