2010-08-29 17 views
8

Tôi đang sử dụng điều khiển Biểu đồ của Bộ công cụ WPF Tháng 2 năm 2010 phát hành. Biểu đồ chiếm nhiều không gian tương đối so với khu vực ô.Thay đổi lề xung quanh khu vực ô và tiêu đề trong biểu đồ Bộ công cụ WPF

Làm cách nào để kiểm soát lề xung quanh khu vực ô và tiêu đề của biểu đồ. Bằng cách này, tôi có thể sắp xếp 10 biểu đồ tôi cần trong một mạng lưới mà không cần phải sử dụng quá nhiều không gian trên màn hình.

Xin cảm ơn,

sprite.

Trả lời

9

Tôi tìm thấy câu trả lời cho một câu hỏi tương tự trong các bảng thảo luận của Bộ công cụ WPF và nghĩ rằng tôi muốn chia sẻ kiến ​​thức.

Giải pháp duy nhất hiện có sẵn là tự tạo kiểu cho biểu đồ. Vì vậy, về cơ bản, tôi lấy định nghĩa kiểu gốc từ mã nguồn của bộ công cụ và tôi sửa đổi nó để đáp ứng nhu cầu của tôi. Tôi cũng sử dụng nó để loại bỏ hoàn toàn huyền thoại.

<Grid.Resources> 
    <!-- chart style modified from WPFToolkit\DataVisualization\Themes\generic.xaml --> 
    <Style TargetType="charts:Chart"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="charts:Chart"> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="Auto" /> 
          <RowDefinition Height="*" /> 
         </Grid.RowDefinitions> 
         <dataVis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" Margin="1"/> 
         <!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto --> 
         <Grid Grid.Row="1" Margin="5,0,5,0"> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="*" /> 
           <ColumnDefinition Width="Auto" /> 
          </Grid.ColumnDefinitions> 
          <chartPrmtvs:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}"> 
           <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" /> 
           <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" /> 
          </chartPrmtvs:EdgePanel> 
         </Grid> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Grid.Resources> 

Mẫu này loại bỏ lề tối thiểu xung quanh tiêu đề và khu vực ô và cũng loại bỏ chú giải. Sau đó tôi sử dụng điều này trong một điều khiển người dùng phù hợp với nhu cầu của tôi và sử dụng lại nó nhiều lần.

Các không gian tên sau đây đã được định nghĩa trong tiêu đề của điều khiển:

xmlns:dataVis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
xmlns:chartPrmtvs="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
xmlns:charts="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 

Thưởng thức!

+1

Bạn đã thực hiện một ngày của mình !! Cảm ơn nhiều! – 321X