The following example demonstrates how to change the position of the title-surface configuration's title region.
XAML |
Copy Code |
---|---|
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"> <Grid.Resources> <xcdg:DataGridCollectionViewSource x:Key="cvs_employees" Source="{Binding Source={x:Static Application.Current}, Path=EmployeesTable}"/> </Grid.Resources> <xcdg:DataGridControl x:Name="EmployeesGrid" ItemsSource="{Binding Source={StaticResource cvs_employees}}"> <xcdg:DataGridControl.View> <xcdg:CardflowView3D> <xcdg:CardflowView3D.Theme> <xcdg:ElementalBlackTheme> <!-- The DefaultTitleRegionConfiguration will be applied to all title regions in all surfaces for which a RegionConfiguration has not been explicitly provided. --> <xcdg:ElementalBlackTheme.DefaultTitleRegionConfiguration> <xcdg:RegionConfiguration FieldNames="FirstName, LastName" ShowCellTitles="False" ReadOnly="True"> <xcdg:RegionConfiguration.Template> <DataTemplate> <!-- In this example, a fixed font size is not ideal since we don't know the final size of a card and we want the font size of the Title to vary along with the card size; therefore, we will place everything in a Viewbox, which will handle everything. --> <Viewbox> <!-- Using a Viewbox will stretch each title according to its content resulting in titles that can be of various sizes. This result may not always be esthetically pleasing and can also produce perspective problems (optical illusions). Giving the root element of the Viewbox an arbitrary width will correct this undesirable behavior. This size of 125 was determined by trial and error using our data source and it may be appropriate to change it according to the data. --> <Grid Width="125"> <!-- This grid is used to center the title when its desired width is less than 100. --> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <StackPanel Orientation="Horizontal" Grid.Column="1"> <xcdg:DataCell FieldName="FirstName" Margin="0, 0, 3, 0"/> <xcdg:DataCell FieldName="LastName"/> </StackPanel> </Grid> </Viewbox> </DataTemplate> </xcdg:RegionConfiguration.Template> </xcdg:RegionConfiguration> </xcdg:ElementalBlackTheme.DefaultTitleRegionConfiguration> <xcdg:ElementalBlackTheme.SurfaceConfigurations> <!-- Because an attempt is made to automatically detect an image in the data item, there is no need to specify the name of the field that contains the image in the surface configuration's ImageRegionConfiguration. --> <xcdg:ImageAndTitleSurfaceConfiguration xcdg:CardflowView3D.Surfaces="Center"/> <!-- This surface will use the DefaultTitleRegionConfiguration; however, it will display its title region in the middle oft he surface rather than the bottom (default). It is important to note that themes decide what title-region positions they support and for which surface configuration. --> <xcdg:TitleSurfaceConfiguration xcdg:CardflowView3D.Surfaces="Left, Right" xcdg:ElementalBlackTheme.TitleRegionPosition="Middle"/> <!--In this surface configuration there is no need to specify the field names to use since: - the image field is automatically detected and used in the image region - the fields used in the title region are specified in the DefaultTitleRegionConfiguration - the fields that have not been explicitly assigned to a specific region will automatically be placed in the default "Data" region.--> <xcdg:CompleteSurfaceConfiguration xcdg:CardflowView3D.Surfaces="Back"/> </xcdg:ElementalBlackTheme.SurfaceConfigurations> </xcdg:ElementalBlackTheme> </xcdg:CardflowView3D.Theme> </xcdg:CardflowView3D> </xcdg:DataGridControl.View> </xcdg:DataGridControl> </Grid> |